Lottozahlen mit grafischer Oberfläche

meinnameist

Mitglied
Hallo Leute! Ich hab mal wieder n kleines Problemchen..

Undzwar soll ich die Lottozahlen ausgeben und verhindern, dass gleiche Zahlen erscheinen. Jedoch wird bei mir immer nur eine Zahl ausgegeben und ich komme grad nicht dahinter, weshalb!

Wäre schön, wenn mir jemand nen Hinweis geben könnte :)


Code:
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.SwingConstants;
import javax.swing.JTextField;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JTextArea;

public class Lotto extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel jLabel = null;
	private JButton jButton = null;
	private JTextField jTextField = null;
	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new Rectangle(120, 77, 152, 31));
			jButton.setHorizontalTextPosition(SwingConstants.CENTER);
			jButton.setText("Ausgeben");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					int [] zufallszahlen = new int [6];
					for(int i=0; i<zufallszahlen.length; i++){
						zufallszahlen[i]= 1+(int)(49*Math.random());
					}
					for(int i=0; i<zufallszahlen.length; i++){
						for(int k=0; k<zufallszahlen.length;k++){
							if(i!=k){
								zufallszahlen[i]=1+(int)(49*Math.random());							
							}
							
						}
						jTextField.setText(zufallszahlen[i]+"");	
					}

				}
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setBounds(new Rectangle(45, 120, 302, 137));
		}
		return jTextField;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Lotto thisClass = new Lotto();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public Lotto() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(400, 300);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(45, 15, 301, 33));
			jLabel.setHorizontalAlignment(SwingConstants.CENTER);
			jLabel.setHorizontalTextPosition(SwingConstants.CENTER);
			jLabel.setFont(new Font("Dialog", Font.BOLD, 24));
			jLabel.setText("Lottozahlen");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(jLabel, null);
			jContentPane.add(getJButton(), null);
			jContentPane.add(getJTextField(), null);
		}
		return jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="294,30"
 

Landei

Top Contributor
Es geht viel einfacher: Fülle eine Liste mit den Zahlen 1 bis 49, rufe java.util.Collections.shuffle(list) auf und nimm die ersten 6 Zahlen.
 

meinnameist

Mitglied
Wir sollen schon mit Arrays und for schleifen arbeiten, aber danke trotzdem :)
Es wäre echt super, wenn du mir hierbei helfen würdest, und meine Fehler vll findest :)
 

Landei

Top Contributor
Du kannst die shuffle-Lösung auch mit Arrays und for-Schleifen nachbauen:
Fülle ein Array mit den Zahlen von 1 bis 49
Wiederhole 500 mal:
index1 = Zufallszahl zwischen 0 und 48
index2 = Zufallszahl zwischen 0 und 48
vertausche Arrayinhalt von index1 und index2 (dazu braucht man eine Variable zum zwischenspeichern)

Nebenbei noch ein Tipp: Nimm nicht Math.random(), sondern erzeuge ein Random-Objekt, denn das hat die Methode Random.nextInt(k), was eine Zahl zwischen 0 und k-1 liefert.
 

srea

Bekanntes Mitglied
Java:
						if (i==0) 
							jTextField.setText(zufallszahlen[i]+"");
						else 
							jTextField.setText(jTextField.getText() + " - " + zufallszahlen[i]+"");
du musst das was du schon im TextField stehen hast (die letzte(n) Zahl(en)) auch nochmal hinschreiben beim nächstn Durchlauf.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
Collections.shuffle arbeitet letztlich auch mit einem Array, noch bisschen anders:
Java:
    /**
     * Randomly permute the specified list using the specified source of
     * randomness.  All permutations occur with equal likelihood
     * assuming that the source of randomness is fair.<p>
     *
     * This implementation traverses the list backwards, from the last element
     * up to the second, repeatedly swapping a randomly selected element into
     * the "current position".  Elements are randomly selected from the
     * portion of the list that runs from the first element to the current
     * position, inclusive.<p>
     *
     * This method runs in linear time.  If the specified list does not
     * implement the {@link RandomAccess} interface and is large, this
     * implementation dumps the specified list into an array before shuffling
     * it, and dumps the shuffled array back into the list.  This avoids the
     * quadratic behavior that would result from shuffling a "sequential
     * access" list in place.
     *
     * @param  list the list to be shuffled.
     * @param  rnd the source of randomness to use to shuffle the list.
     * @throws UnsupportedOperationException if the specified list or its
     *         list-iterator does not support the <tt>set</tt> operation.
     */
    public static void shuffle(List<?> list, Random rnd) {
        int size = list.size();
        if (size < SHUFFLE_THRESHOLD || list instanceof RandomAccess) {
            for (int i=size; i>1; i--)
                swap(list, i-1, rnd.nextInt(i));
        } else {
            Object arr[] = list.toArray();

            // Shuffle array
            for (int i=size; i>1; i--)
                swap(arr, i-1, rnd.nextInt(i));

            // Dump array back into list
            ListIterator it = list.listIterator();
            for (int i=0; i<arr.length; i++) {
                it.next();
                it.set(arr[i]);
            }
        }
    }
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Erste Schritte Lottozahlen richtig generieren. Java Basics - Anfänger-Themen 12
W Lottozahlen Java Basics - Anfänger-Themen 13
J Lottozahlen Java Basics - Anfänger-Themen 129
M Java Programm: Lottozahlen Java Basics - Anfänger-Themen 4
T Lottozahlen ziehen Java Basics - Anfänger-Themen 19
M Lottozahlen 6 aus 49 keine doppelten Java Basics - Anfänger-Themen 5
V Lottozahlen Java Basics - Anfänger-Themen 10
C Arrays Lottozahlen Java Basics - Anfänger-Themen 29
Z Problem mit Lottozahlen Generator Java Basics - Anfänger-Themen 2
JeromeM90 Problem bei meinem Programm : Lottozahlen Java Basics - Anfänger-Themen 30
D Lottozahlen Java Basics - Anfänger-Themen 15
B Lottozahlen Programm!?!? Java Basics - Anfänger-Themen 3
C Binärbaum mit grafischer Ausgabe Java Basics - Anfänger-Themen 0
K Compilierfehler bei grafischer Oberfläche Java Basics - Anfänger-Themen 7
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
D Grafischer Oberflächengenerator Java Basics - Anfänger-Themen 7
S Grafischer Taschenrechner geht nicht :-( Java Basics - Anfänger-Themen 19
N Grafischer Zeilensprung Java Basics - Anfänger-Themen 9
TomatenBrot447 Programmieraufgabe - Grafische Oberfläche- falsches Ergebnis? Java Basics - Anfänger-Themen 15
TechGirl JAVA GUI Oberfläche Umkreisung - wie heißt dieses Element? Java Basics - Anfänger-Themen 2
S Oberfläche aktualisiert nicht wegen sleep Java Basics - Anfänger-Themen 1
C class in main aufrufen (SWT Oberfläche) Java Basics - Anfänger-Themen 5
B eclipse Oberfläche zurück setzen Java Basics - Anfänger-Themen 2
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
S Gui Oberfläche wird nicht richtig dargestellt Java Basics - Anfänger-Themen 5
D Oberfläche machen Java Basics - Anfänger-Themen 8
K Warum updated sich die Oberfläche nicht?! Java Basics - Anfänger-Themen 4
G Framework für eine Flexible Oberfläche! Java Basics - Anfänger-Themen 9
T Grafische Oberfläche Java Basics - Anfänger-Themen 14
J Editor für grafische Oberfläche Java Basics - Anfänger-Themen 12
F Grafische Oberfläche.ist das kompliziert? Java Basics - Anfänger-Themen 7
C Oberfläche & anderes Java Basics - Anfänger-Themen 6
C Oberfläche abscannen Java Basics - Anfänger-Themen 13
G Applet Oberfläche Java Basics - Anfänger-Themen 3
G Grafische Oberfläche mit Buttons und Actionlistener? Java Basics - Anfänger-Themen 27
K Programm von selbsterstellter Oberfläche starten Java Basics - Anfänger-Themen 2
G Swing Oberfläche Java Basics - Anfänger-Themen 12
G JAR File will nicht von Oberfläche aus gestartet werden Java Basics - Anfänger-Themen 2
eQui Oberfläche mit Graphics zeichnen Java Basics - Anfänger-Themen 11
S Darstellungsfehler auf der Oberfläche Java Basics - Anfänger-Themen 6
M Datenbankabfrage über eine Java Oberfläche Java Basics - Anfänger-Themen 3
P Java Oberfläche mit Windows Feeling Java Basics - Anfänger-Themen 17
S Oberfläche - erhöht Java Basics - Anfänger-Themen 8
Y Grafikanwendungen zeigen keine Oberfläche an Java Basics - Anfänger-Themen 9
J Buttons mit graphischer, selbstgezeichneter Oberfläche Java Basics - Anfänger-Themen 9
Paule 2 Fragen zur grafischen Oberfläche Java Basics - Anfänger-Themen 5
S Graphische Oberfläche Java Basics - Anfänger-Themen 7
J Location von Oberfläche speichern Java Basics - Anfänger-Themen 6
G Laden und Speichern der Konfiguration einer gra. Oberfläche Java Basics - Anfänger-Themen 4
H Thread mit AWT-Oberfläche kombinieren Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben