Jaka jest poprawna kolejnosc uzywania ponizszych metod przy zmianie paneli tak zeby ramka rozciagnela sie na tyle ile potrzeba dla komponentów ?
getContentPane().remove(Panel1);
getContentPane().add(Panel2);
pack();
validate();
repaint();
Jaka jest poprawna kolejnosc uzywania ponizszych metod przy zmianie paneli tak zeby ramka rozciagnela sie na tyle ile potrzeba dla komponentów ?
getContentPane().remove(Panel1);
getContentPane().add(Panel2);
pack();
validate();
repaint();
Dobra kolejność.
Masz świadomość, że taki kod może przewrócić wygląd okna do góry nogami? On zmienia kolejność dodawania paneli. (pack() jest chyba zbyteczne).
Wiem co ten kod robi nie wiem tylko co dokladnie robi
validate();
i gdzie najlepiej wstawić
pack();
Czy np
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GlownaRamka frame = new GlownaRamka();
frame.pack();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
to jest dobre miejsce dla
pack();
pack powinno być po dodaniu wszystkich komponentów, a przed ewentualnym centrowaniem okna
setLocationRelativeTo(null);
setVisible(true();
Czy
repaint()
to jest to samo co GlownaRamka frame = new GlownaRamka();
Mozna tak to rozumiec że ta metoda tworzy na nowo ramke ?
Wtf? repaint() odrysowuje istniejącą ramkę,
new GlownaRamka();
tworzy nową.
Chce po prostu dokładnie ogarnąć dlaczego po zmianie paneli wstawiamy
validate();
repaint();
W uproszczeniu, trzeba ustalić rozmiar okna z nowymi komponentami i zmienione okno narysować.