raczej podstawowe pytanie tutaj facetów.Dodanie dodatkowych JPanels do JPanel
Zasadniczo mam kod jak poniżej:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(panel2(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
I to wszystko dobrze działa. Problem polega na tym, że mam inną część, którą chcę dodać do centrum. Wystarczy za pomocą add(newPanel(), BorderLayout.CENTER)
nie działa, oczywiście. Ale możesz dodać JPanel
s w JPanel
s, prawda?
Więc zrobiłem następujące zmiany:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(supersweetpanel(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
Z supersweetpanel()
samopoczucia:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
setLayout(new BorderLayout());
add(panel2(), BorderLayout.NORTH);
return sswp;
}
Teraz zastępuje panel1
! Jeżeli ustawić go do niczego innego (CENTER
, SOUTH
, co masz), dwie pierwsze płyty znikają całkowicie. Pomoc jest bardzo cenna.
+1. To musi być to, i daje dobry przykład, dlaczego korzystanie z dziedziczenia może sprawić, że sprawy będą kruche. – Eddie
Ah, to było dokładnie to. Śliczny. –
Co powiedział Eddie. Szkoda, że większość tutoriali Swing (i Swing GUI) ma taki zły kod. –