Sprawa jest tego typu, że główne okno ma ustawiony GridBagLayout. Siatka layoutu składa się z 8 wierszy i 4 kolumn (czyli wiersze 0-7, kolumny 0-3). U góry okna jest JComboBox, którego actionListener ma za zadanie podmienić panel rozciągający się na: wiersz:5-6 i kolumny:0-3 (nowy panel jest lokowany w tym samym miejscu).
Zaś w wierszu 7 są 2 przyciski: przycisk_ok i przycisk_anuluj.
No i teraz pytanko: Czy podmiana panelu w wierszach 5-6, w związku z tym, że nowy panel ma być umieszczony w tych samych wierszach musi wyrzucić wszystko poniżej 5 wiersza i dodać na nowo od niego do końca całość, czy może można to zrobić bez ingerencji w wiersz 7 ?
do tej pory mam tak:
combo.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int r = combo.getSelectedIndex();
if(r==5)
{
remove(panel04);
remove(przycisk_ok);
remove(przycisk_anuluj);
add(panel5, new GBC(5,0,4,2).setFill(GBC.BOTH).setWeight(100, 100));
add(przycisk_ok, new GBC(7,0,2,1).setAnchor(GBC.CENTER).setInsets(5).setWeight(100, 100));
add(przycisk_anuluj, new GBC(7,2,2,1).setAnchor(GBC.CENTER).setInsets(5).setWeight(100,
100));
validate();
}
else
{
remove(panel5);
remove(przycisk_ok);
remove(przycisk_anuluj);
add(panel04, new GBC(5,0,4,2).setFill(GBC.BOTH).setWeight(100, 100));
add(przycisk_ok, new GBC(7,0,2,1).setAnchor(GBC.CENTER).setInsets(5).setWeight(100, 100));
add(przycisk_anuluj, new GBC(7,2,2,1).setAnchor(GBC.CENTER).setInsets(5).setWeight(100,
100));
validate();
}
}});
To działa, ale czy można to zrobić lepiej - bez wyrzucania komponentów 7 wiersza? (gdy ich nie ruszałem to podmieniany panel lądował zawsze na dole okna)
P.S. podmienianie panele to: panel04 i panel5.