LayoutManager GridLayout verändert isch andauernd

R3D L10N

Mitglied
Hallo!
Ich bin gerade dabei für die Schule ein Programm zu schreiben, welches einen Würfel simuliert.
Dazu benutze ich das GridLayout.
Aber immer wenn ich das Programm starte, erscheint es anders als es soll, aber dann, beim neustart, erscheint es ganz normal.

So sollte es normalerweise aussehen:



Aber es sieht so



So



oder so aus



Hier der ganze Code des Progs:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class class00 {
	
	public static void main(String[] args) {
		//Create Window
		JFrame win = new JFrame("Zufallsexperiment - Würfel");
		win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		win.setSize(400, 200);
		win.setLayout(new GridLayout(/*3*/ 0, 2, 6, 3));
		win.setAlwaysOnTop(true);
		win.setVisible(true);
		
		//Create TextField01
		final JTextField ausgabe01 = new JTextField();
		ausgabe01.setSize(150, 50);
		ausgabe01.setVisible(true);
		
		ActionListener al01 = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					int zufall01 = ( int ) ( Math.random() * 6 + 1 );
					ausgabe01.setText("Ergebnis: " + zufall01);
				}
		};
		
		//Create Button01
		JButton gen01 = new JButton("Würfeln!");
		gen01.setSize(150, 50);
		gen01.addActionListener(al01);
		gen01.setVisible(true);
		
		//Create TextField02
		final JTextField ausgabe02 = new JTextField();
		ausgabe02.setSize(150, 50);
		ausgabe02.setVisible(true);
		
		ActionListener al02 = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					int zufall02 = ( int ) ( Math.random() * 6 + 1 );
					ausgabe02.setText("Ergebnis: " + zufall02);
				}
		};
		
		//Create Button02
		JButton gen02 = new JButton("Würfeln!");
		gen02.setSize(150, 50);
		gen02.addActionListener(al02);
		gen02.setVisible(true);
		
		//Create TextField03
		final JTextField ausgabe03 = new JTextField();
		ausgabe03.setSize(150, 50);
		ausgabe03.setVisible(true);
		
		ActionListener al03 = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					int zufall03 = ( int ) ( Math.random() * 6 + 1 );
					ausgabe03.setText("Ergebnis: " + zufall03);
				}
		};
		
		//Create Button03
		JButton gen03 = new JButton("Würfeln!");
		gen03.setSize(150, 50);
		gen03.addActionListener(al03);
		gen03.setVisible(true);
		
		//Create TextField04
		final JTextField ausgabe04 = new JTextField();
		ausgabe04.setSize(150, 50);
		ausgabe04.setVisible(true);
		
		ActionListener al04 = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					int zufall04 = ( int ) ( Math.random() * 6 + 1 );
					ausgabe04.setText("Ergebnis: " + zufall04);
				}
		};
		
		//Create Button04
		JButton gen04 = new JButton("Würfeln!");
		gen04.setSize(150, 50);
		gen04.addActionListener(al04);
		gen04.setVisible(true);
		
		//Add Elements to Window
		win.add(ausgabe01);
		win.add(gen01);
		win.add(ausgabe02);
		win.add(gen02);
		win.add(ausgabe03);
		win.add(gen03);
		win.add(ausgabe04);
		win.add(gen04);
	}

}

Was kann ich tun, damit es bei der Position bleibt, bei der es sein soll?
 
win.setVisible(true) solltest du ganz am Ende aufrufen (ansonsten muss man validate() auf dem Container aufrufen, wenn was hinzugefügt wurde)
 

Neue Themen


Zurück
Oben