Pomijanie parametrów JButton podczas wyświetlania go w JFrame, Java

Pomijanie parametrów JButton podczas wyświetlania go w JFrame, Java
tito
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Witam.

mam taki oto prosty kod

Kopiuj
import javax.swing.*;

public class Button extends JFrame {
		
	public static void main(String[] args){
		
		JFrame frame = new JFrame("Przyciskory");
		
		frame.setSize(350, 250);
		frame.setLocation(400, 250);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				
		frame.setVisible(true);
				
		JButton butt = new JButton("Button 1");
		butt.setSize(120, 20);
		butt.setLocation(70, 50);
		frame.getContentPane().add(butt);
		
		JButton butt2 = new JButton("Button 2");
		butt2.setSize(80, 20);
		butt2.setLocation(10, 0);
		frame.getContentPane().add(butt2);
	
	}
}

Wynik tego kodu trochę mnie zaskoczył - można go zobaczyć w załączniku.
Zabawny jest fakt iż przycisk "butt" na samym początku także rozciągał się na całą ramkę - dopiero po dodaniu przycisku "butt2" zaczął wygądać poprawnie.
Czasem (bardzo rzadko) Java dostaje olśnienia i portafi prawidłowo wyświetlić przyciski.

Pytania:
Czemu tak się dzieje ? Jak temu zaradzić?

  • Rejestracja: dni
  • Ostatnio: dni
0

Bo dodajesz butt'y do frame'a a nie do panela ? I masz button jako panel.

Kopiuj
getContentPane().add(JakiśtamPanel);
JakiśtamPanel.add(butt); 

Wtedy działa normalnie.

  • Rejestracja: dni
  • Ostatnio: dni
1

@szypxx, niewłaściwa diagnoza.
@autor, albo korzystasz z menadżera, albo rozmieszczasz komponenty ręcznie. Ty masz jedno i drugie równocześnie. Wyłącz menadżera rozkładu:

Kopiuj
frame.setLayout(null);
tito
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

bo ma rację całkowitą :)
podziałało.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.