LayoutManager TextField verschwindet / wird klein

selmaohneh

Mitglied
Moin!

Ich habe mit WindowBuilder eine GUI erstellt, die in der Vorschau auch ganz gut aussieht und auf meinem Arbeitsrechner auch nach dem kompilieren.
Es gibt jedoch ein seltsames Problem. Die Vorschau vom Windowbuilder scheint nicht sehr genau zu sein. Mache ich das JPanel zum Beispiel kleiner, aber so, dass die Textfield im Fenster immer noch passen, dann ziehen sich die Textfields auf meine minimale Größe zusammen (siehe Bild). Das gleiche passiert auf meinem Heimrechner, obwohl ich die Version geöffnet habe, die nach dem kompilieren auf dem Arbeitsrechner gut aussah, also ohne Zusammenziehen.

Kenn jemand diesen Fehler und kann mir helfen?

Danke!
 

Anhänge

  • Unbenannt.gif
    Unbenannt.gif
    25,1 KB · Aufrufe: 37
ohne den sourcecode wird das nix
warscheinlich macht der layoutmanager nicht was er soll, aber dafür müsst ich erstmal wissen welcher da überhaupt drauf ist
 
Zuletzt bearbeitet:
Moin!

Mein Layoutmanager ist WindowBuilder für Eclipse. Hier ist der Code für das GUI auf dem Foto. Hoffe, dass jemand den Fehler findet. Vielen Dank!

Java:
import java.awt.BorderLayout;


public class NeuesSpiel extends JFrame {

	private JPanel contentPane;
	private JTextField txtK;
	private JTextField txtD;
	private JTextField txtA;
	private JTextField txtK_1;
	private JTextField txtD_1;
	private JTextField txtA_1;
	private JTextField txtMinuten;
	private JTextField txtKills;
	private JTextField txtDeaths;
	private JTextField txtAssists;
	private JCheckBox chckbxJoost;


	/**
	 * Create the frame.
	 */
	public NeuesSpiel(final Spieler cello,final Spieler whisky,final Spieler joost) {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent arg0) {
				dispose();
				try {
					LoLKasse hauptfenster = new LoLKasse(cello, whisky, joost);
					hauptfenster.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		setResizable(false);
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		setBounds(100, 100, 372, 192);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		GridBagLayout gbl_contentPane = new GridBagLayout();
		gbl_contentPane.columnWidths = new int[]{23, 47, 0, 0};
		gbl_contentPane.rowHeights = new int[]{14, 20, 20, 20, 20, 23, 0};
		gbl_contentPane.columnWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
		gbl_contentPane.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		contentPane.setLayout(gbl_contentPane);
		
		JLabel lblCello = new JLabel("Cello");
		GridBagConstraints gbc_lblCello = new GridBagConstraints();
		gbc_lblCello.anchor = GridBagConstraints.NORTH;
		gbc_lblCello.insets = new Insets(0, 0, 5, 5);
		gbc_lblCello.gridx = 0;
		gbc_lblCello.gridy = 0;
		contentPane.add(lblCello, gbc_lblCello);
		
		JLabel lblWhisky = new JLabel("Whisky");
		GridBagConstraints gbc_lblWhisky = new GridBagConstraints();
		gbc_lblWhisky.anchor = GridBagConstraints.NORTH;
		gbc_lblWhisky.insets = new Insets(0, 0, 5, 5);
		gbc_lblWhisky.gridx = 1;
		gbc_lblWhisky.gridy = 0;
		contentPane.add(lblWhisky, gbc_lblWhisky);
		
		txtK = new JTextField();
		txtK.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtK.selectAll();
			}
		});
		
		chckbxJoost = new JCheckBox("Joost");
		GridBagConstraints gbc_chckbxJoost = new GridBagConstraints();
		gbc_chckbxJoost.insets = new Insets(0, 0, 5, 0);
		gbc_chckbxJoost.gridx = 2;
		gbc_chckbxJoost.gridy = 0;
		contentPane.add(chckbxJoost, gbc_chckbxJoost);
		txtK.setHorizontalAlignment(SwingConstants.CENTER);
		txtK.setText("Kills");
		txtK.setColumns(10);
		GridBagConstraints gbc_txtK = new GridBagConstraints();
		gbc_txtK.anchor = GridBagConstraints.NORTH;
		gbc_txtK.insets = new Insets(0, 0, 5, 5);
		gbc_txtK.gridx = 0;
		gbc_txtK.gridy = 1;
		contentPane.add(txtK, gbc_txtK);
		
		txtK_1 = new JTextField();
		txtK_1.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtK_1.selectAll();
			}
		});
		txtK_1.setHorizontalAlignment(SwingConstants.CENTER);
		txtK_1.setText("Kills");
		txtK_1.setColumns(10);
		GridBagConstraints gbc_txtK_1 = new GridBagConstraints();
		gbc_txtK_1.anchor = GridBagConstraints.NORTH;
		gbc_txtK_1.insets = new Insets(0, 0, 5, 5);
		gbc_txtK_1.gridx = 1;
		gbc_txtK_1.gridy = 1;
		contentPane.add(txtK_1, gbc_txtK_1);
		
		txtD = new JTextField();
		txtD.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtD.selectAll();
			}
		});
		
		txtKills = new JTextField();
		txtKills.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtKills.selectAll();
			}
		});
		txtKills.setText("Kills");
		txtKills.setHorizontalAlignment(SwingConstants.CENTER);
		GridBagConstraints gbc_txtKills = new GridBagConstraints();
		gbc_txtKills.insets = new Insets(0, 0, 5, 0);
		gbc_txtKills.gridx = 2;
		gbc_txtKills.gridy = 1;
		contentPane.add(txtKills, gbc_txtKills);
		txtKills.setColumns(10);
		txtD.setHorizontalAlignment(SwingConstants.CENTER);
		txtD.setText("Deaths");
		txtD.setColumns(10);
		GridBagConstraints gbc_txtD = new GridBagConstraints();
		gbc_txtD.anchor = GridBagConstraints.NORTH;
		gbc_txtD.insets = new Insets(0, 0, 5, 5);
		gbc_txtD.gridx = 0;
		gbc_txtD.gridy = 2;
		contentPane.add(txtD, gbc_txtD);
		
		txtD_1 = new JTextField();
		txtD_1.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtD_1.selectAll();
			}
		});
		txtD_1.setHorizontalAlignment(SwingConstants.CENTER);
		txtD_1.setText("Deaths");
		txtD_1.setColumns(10);
		GridBagConstraints gbc_txtD_1 = new GridBagConstraints();
		gbc_txtD_1.anchor = GridBagConstraints.NORTH;
		gbc_txtD_1.insets = new Insets(0, 0, 5, 5);
		gbc_txtD_1.gridx = 1;
		gbc_txtD_1.gridy = 2;
		contentPane.add(txtD_1, gbc_txtD_1);
		
		txtA = new JTextField();
		txtA.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtA.selectAll();
			}
		});
		
		txtDeaths = new JTextField();
		txtDeaths.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtDeaths.selectAll();
			}
		});
		txtDeaths.setHorizontalAlignment(SwingConstants.CENTER);
		txtDeaths.setText("Deaths");
		GridBagConstraints gbc_txtDeaths = new GridBagConstraints();
		gbc_txtDeaths.insets = new Insets(0, 0, 5, 0);
		gbc_txtDeaths.gridx = 2;
		gbc_txtDeaths.gridy = 2;
		contentPane.add(txtDeaths, gbc_txtDeaths);
		txtDeaths.setColumns(10);
		txtA.setHorizontalAlignment(SwingConstants.CENTER);
		txtA.setText("Assists");
		txtA.setColumns(10);
		GridBagConstraints gbc_txtA = new GridBagConstraints();
		gbc_txtA.anchor = GridBagConstraints.NORTH;
		gbc_txtA.insets = new Insets(0, 0, 5, 5);
		gbc_txtA.gridx = 0;
		gbc_txtA.gridy = 3;
		contentPane.add(txtA, gbc_txtA);
		
		txtA_1 = new JTextField();
		txtA_1.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtA_1.selectAll();
			}
		});
		txtA_1.setHorizontalAlignment(SwingConstants.CENTER);
		txtA_1.setText("Assists");
		txtA_1.setColumns(10);
		GridBagConstraints gbc_txtA_1 = new GridBagConstraints();
		gbc_txtA_1.anchor = GridBagConstraints.NORTH;
		gbc_txtA_1.insets = new Insets(0, 0, 5, 5);
		gbc_txtA_1.gridx = 1;
		gbc_txtA_1.gridy = 3;
		contentPane.add(txtA_1, gbc_txtA_1);
		
		txtMinuten = new JTextField();
		txtMinuten.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtMinuten.selectAll();
			}
		});
		
		txtAssists = new JTextField();
		txtAssists.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				txtAssists.selectAll();
			}
		});
		txtAssists.setText("Assists");
		txtAssists.setHorizontalAlignment(SwingConstants.CENTER);
		GridBagConstraints gbc_txtAssists = new GridBagConstraints();
		gbc_txtAssists.insets = new Insets(0, 0, 5, 0);
		gbc_txtAssists.gridx = 2;
		gbc_txtAssists.gridy = 3;
		contentPane.add(txtAssists, gbc_txtAssists);
		txtAssists.setColumns(10);
		txtMinuten.setHorizontalAlignment(SwingConstants.CENTER);
		txtMinuten.setText("Minuten");
		txtMinuten.setColumns(10);
		GridBagConstraints gbc_txtMinuten = new GridBagConstraints();
		gbc_txtMinuten.fill = GridBagConstraints.HORIZONTAL;
		gbc_txtMinuten.gridwidth = 3;
		gbc_txtMinuten.anchor = GridBagConstraints.NORTH;
		gbc_txtMinuten.insets = new Insets(0, 0, 5, 5);
		gbc_txtMinuten.gridx = 0;
		gbc_txtMinuten.gridy = 4;
		contentPane.add(txtMinuten, gbc_txtMinuten);
		
		JButton btnEintragen = new JButton("Eintragen");
		btnEintragen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
				cello.gespielt(Double.parseDouble(txtK.getText()), Double.parseDouble(txtD.getText()), Double.parseDouble(txtA.getText()), Double.parseDouble(txtMinuten.getText()));
				whisky.gespielt(Double.parseDouble(txtK_1.getText()), Double.parseDouble(txtD_1.getText()), Double.parseDouble(txtA_1.getText()), Double.parseDouble(txtMinuten.getText()));	
				if(chckbxJoost.isSelected()){
					joost.gespielt(Double.parseDouble(txtKills.getText()), Double.parseDouble(txtDeaths.getText()), Double.parseDouble(txtAssists.getText()), Double.parseDouble(txtMinuten.getText()));	
				}
				try {
					LoLKasse hauptfenster = new LoLKasse(cello, whisky, joost);
					hauptfenster.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		GridBagConstraints gbc_btnEintragen = new GridBagConstraints();
		gbc_btnEintragen.insets = new Insets(0, 0, 0, 5);
		gbc_btnEintragen.fill = GridBagConstraints.HORIZONTAL;
		gbc_btnEintragen.anchor = GridBagConstraints.NORTH;
		gbc_btnEintragen.gridwidth = 3;
		gbc_btnEintragen.gridx = 0;
		gbc_btnEintragen.gridy = 5;
		contentPane.add(btnEintragen, gbc_btnEintragen);
		setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{txtK, txtD, txtA, txtK_1, txtD_1, txtA_1,chckbxJoost,txtKills,txtDeaths,txtAssists, txtMinuten, btnEintragen}));
	}
}
 
Ähm... WindowBuilder ist nur ein Tool zum erstellen von Oberflächen.
Der LayoutManager ist das GridBagLayout auf deinem JPanel contentPane...

Warum genau dein Textfeld verschwindet, kann ich zwar nicht sagen (verwende aus Prinzip kein Swing mehr 😛 ), aber ich denke mal, entweder brauchst du da eine MinHeight auf dem TextFeld oder eben dem JPanel selbst. Das Problem ist: Unterschreitest du eine bestimmte Grösse, wirst du irgendwann bei jedem noch so intelligent gebauten Layout auf Grenzen stossen. Es wird dann quasi nicht mehr nutzbar. Du hast dann zwei Möglichkeiten: Setze eine Minmalgrösse des Fesnters, oder akzeptiere, dass irgendwann Items verschwinden. Bei Toolbars oder so kannst du noch gegensteuern und solche Menü-Buttons machen, aber bei komplexen Fenstern wird es irgendwann kompliziert.

Für dein konkretes Swing-Problem, müssen dir aber die anderen hier im Forum helfen. Ich bin da raus.
 
Konnte mir jetzt behelfen, indem ich jede Komponente auf Grow und Fill gesetzt habe.

Wenn es heute auch auf dem Heimrechner klappt, ist das Thema damit für mich erledigt.

Danke!
 

Neue Themen


Zurück
Oben