Domanda piuttosto elementare qui ragazzi.Aggiunta di JPan aggiuntivi a un JPanel
Fondamentalmente ho codice come questo:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(panel2(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
e che tutto funziona bene e buono. Il problema è che ho un'altra parte che desidero aggiungere al centro. Usare semplicemente add(newPanel(), BorderLayout.CENTER)
non funziona, ovviamente. Ma è possibile aggiungere JPanel
s in JPanel
s, corretto?
così ho fatto la seguente modifica:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(supersweetpanel(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
Con supersweetpanel()
essere:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
setLayout(new BorderLayout());
add(panel2(), BorderLayout.NORTH);
return sswp;
}
Ora ha la priorità panel1
! Se l'ho impostato su qualsiasi altra cosa (CENTER
, SOUTH
, cosa hai), i primi due pannelli scompaiono completamente. L'aiuto è molto apprezzato.
+1. Deve esserlo e fornisce un buon esempio del perché l'ereditarietà può rendere le cose fragili. – Eddie
Ah, era esattamente così. Bello. –
Cosa disse Eddie. È un peccato che la maggior parte dei tutorial Swing (e le GUI Swing) abbiano un codice così cattivo. –