Maksymalizuje okno a komponenty uciekają w lewy górny róg

0

Witam,
mam takie pytanko a w zasadzie zapytam o rade :) zrobiłem sobie okno logowanie z dwoma JTextField i dwoma JButton. Wszystko jest ok dopóki okno ma rozmiar jaki mu dałem w kodzie, lecz gdy maksymalizuje okno to te przyciski i pola tekstowe wędrują mi w lewy górny róg okna.

Tak wygląda przy rozmiarach z kodu http://www.fotosik.pl/pokaz_obrazek/7fe8b7485defae99.html
A tak po maksymalizacji http://www.fotosik.pl/pokaz_obrazek/3b13b969d170efd9.html

Dodam że layout mam ustawiony na null. setLayout(null);

I tutaj moje czy jest jakiś sposób żeby komponenty zostały na swoim miejscu czyli w takim układzie jak przed maksymalizacją.

0

Użyj po prostu któregoś z layoutów, to wydaje się być najprostszym rozwiązaniem. Innym mogłoby być ręczne przesunięcie komponentów po maksymalizacij, ale to tak na prawdę niczego nie rozwiązuje, bo problem by się znów pojawił podczas zwiększania rozmiaru okna.

0

Jak nie używasz menadżerów, to blokuj możliwość zmiany rozmiaru okna: setResizable(false);

0

OK zacząłem męczyć te layout menagery i napisałem taki przykładzik. Tylko nie wiem jak zmienić rozmiar komponentów np JTextField. Oto kodzik. Coś próbowałem ale nadal textfieldy nie chcą zmienić rozmiaru i są ogromne :)

public class KlasaGlowna {

	
	public static void main(String[] args) {
		
		JFrame okno = new JFrame("okno");
		okno.setSize(new Dimension(400,400));
		okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JButton but1 = new JButton("But 1");
		JButton but2 = new JButton("But 2");
		
		JButton but3 = new JButton("But 3");
		JButton but4 = new JButton("But 4");
		
		JTextField text1 = new JTextField();
		JTextField text2 = new JTextField();
		
		
		
		
		JPanel panel = new JPanel();
		
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
		
		//text1.setPreferredSize(new Dimension(2000,10));
		//text2.setPreferredSize(new Dimension(2000,10));
		
		Box pudlo1 = Box.createHorizontalBox();
		Box pudlo2 = Box.createHorizontalBox();
		
		pudlo1.add(text1);
		pudlo1.add(Box.createRigidArea(new Dimension(10,50)));
		pudlo1.add(text2);
		
		pudlo2.add(but3);
		pudlo2.add(but4);
		
		panel.add(pudlo1);
		panel.add(Box.createVerticalStrut(50));
		panel.add(pudlo2);
		
		okno.add(panel);
	
		okno.setVisible(true);

	}

}
0
  1. Instalujemy w Eclipse wtyczkę Google Window Builder ;)
  2. Wszystko upychaj w panelach ;] Wtedy takie problemy same sie rozwiązują ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1