wysrodkowanie jlabel

0

Siema!
Jak wysrodkowac JLable?

    label = new JLabel("Witwaj ");		
	Dimension screan = Toolkit.getDefaultToolkit().getScreenSize();
	label.setBounds((int)screan.getWidth()/2, (int)screan.getHeight()/2,100,100);
	label.setFont(new Font(null, Font.BOLD, 20));
	add(label);

Niestety takie rozwiaznie przesuwa mi component. Co zrobic aby to wysrodkowac i dlaczego po podaniu dlugosci i szerokosci nie wysrodkowuje mi tego?? Dopiero zaczynam gui.

0

Źle zaczynasz przygodę z GUI. Korzystaj z layoutów, nie rozmieszczaj komponentów ręcznie.
Korzystasz z metody

setBounds(x,y,width,height)

Twój kod nie umieści komponentu (JLabel) w środku okna (JFrame) z dwóch powodów:

  • x i y to współrzędne lewego górnego wierzchołka komponentu, a nie środka komponentu, kod powinien wyglądać tak
    label = new JLabel("Witaj",JLabel.CENTER);        
    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    label.setBounds(screen.getWidth()/2 - 50, screen.getHeight()/2-50,100,100);
  • x i y to współrzędne w oknie, a nie współrzędne na ekranie, zamiast Toolkit.getDefaultToolkit().getScreenSize() powinieneś użyć rozmiaru swojego okna.

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