publicStringnen(){int zufallszahlen;int MIN =1;int MAX =49;Random generator =newRandom();for(int i =1; i <=6; i++){
zufallszahlen = generator.nextInt(MAX - MIN +1)+ MIN;}returnnull;}
da du die methode so deklarierst "public String nen()" ist doch normal das er dann als return wert einen String erwartet aber du jedoch nur null returnst sprich nichts
wenn du in der methode kein return willst mach es mit void
dem "Label" wird bei Klick der Wert der Methode "nen()" als Label-Text gesetzt. Dies muss ein String sein. Deine Methode gibt null zurück. Wie schon hier erwähnt ist das unbestimmt, nichts.
Was glaubst Du, willst Du auf dem Label sehen? Vielleicht alle 6 "gezogenen" Zahlen durch ein Leerzeichen voneinander getrennt?
Um Deinen Ansatz nicht komplett umzuwerfen, ändere den Typ von "zufallszahlen" in String und sorge dafür, dass alle gezogenen Zahlen mit Leerzeichen als Trenner dort landen. Return null sollte dann durch etwas klügeres ausgetauscht werden. Vielleicht fällt Dir ein was...
dem "Label" wird bei Klick der Wert der Methode "nen()" als Label-Text gesetzt. Dies muss ein String sein. Deine Methode gibt null zurück. Wie schon hier erwähnt ist das unbestimmt, nichts.
Was glaubst Du, willst Du auf dem Label sehen? Vielleicht alle 6 "gezogenen" Zahlen durch ein Leerzeichen voneinander getrennt?
Um Deinen Ansatz nicht komplett umzuwerfen, ändere den Typ von "zufallszahlen" in String und sorge dafür, dass alle gezogenen Zahlen mit Leerzeichen als Trenner dort landen. Return null sollte dann durch etwas klügeres ausgetauscht werden. Vielleicht fällt Dir ein was...
importjava.awt.FlowLayout;importjava.awt.Frame;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JTextArea;publicclassLottoProgrammextendsJFrame{JLabelText;JButtonButton;JLabelLabel;classLottoListenerimplementsActionListener{publicvoidactionPerformed(ActionEvent e){Label.setText(nen());}publicStringnen(){int zufallszahlen;int MIN =1;int MAX =49;Random generator =newRandom();StringBuffer str =newStringBuffer();for(int i =1; i <=6; i++){
zufallszahlen = generator.nextInt(MAX - MIN +1)+ MIN;
str.append((zufallszahlen +" "));}return str.toString();}}publicLottoProgramm(String titel){super(titel);Text=newJLabel(" Bitte Drücken Sie auf den Knopf");Button=newJButton(" Drücken");Label=newJLabel();setLayout(newFlowLayout());add(Text);add(Button);add(Label);// das Fenster packenpack();// die Standardaktion beim Schließen festlegensetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// das Fenster anzeigensetVisible(true);setSize(250,200);LottoListener listener =newLottoListener();Button.addActionListener(listener);}publicstaticvoidmain(String[] args){newLottoProgramm("LottoProgramm");}}
auch wenn ichs von anfang an vllt bissle anders gemacht hätte
p.s.: denk auch dran, dass keine zahl doppelt vorkommen kann (lotto )
anstatt die zahlen konkateniert in einem string zu speichern, könntest du sie auch bspw. in ein array speichern, was dem vorteil hat, du könntest das ganze auch leicht sortieren/vergleichen/etc....
bsp.:
Java:
int[] zahlen =newint[6];for(int i =1; i <=6; i++){
zufallszahlen = generator.nextInt(MAX - MIN +1)+ MIN;
zahlen[i-1]= zufallszahlen;}
java.util.Arrays.sort( zahlen);return java.util.Arrays.toString( zahlen);