Premesso che farsi autogenerare il codice (specialmente per le GUI) da un IDE è sempre una pessima idea poichè il codice generato è:
1) Non modificabile (i miei programmi me li gestisco sempre tutti, non esiste che qualcuno o qualcosa non mi permetta di modificare parte del codice)
2) Non manutenibile
3) Ridondante
4) Altamente inefficiente
5) Altre varie ed eventuali
Questo piccolo programmino scritto al volo, dimostra che, se le cose sono fatte in modo consapevole (ovvero il codice scritto è stato scritto così perchè si vuole che quello sia il risultato), allora funzionano anche.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class PanelNascosto extends JFrame implements ActionListener {
private JPanel panelVisibile;
private JPanel panelNascosto;
private JTextField txtVisibile;
private JTextField txtNascosta;
private JButton cmdShowHide;
private boolean show;
public PanelNascosto() {
Container c = getContentPane();
c.setLayout( new BorderLayout() );
show = false;
txtVisibile = new JTextField();
txtNascosta = new JTextField();
cmdShowHide = new JButton("Visualizza");
cmdShowHide.addActionListener( this );
panelVisibile = new JPanel( new BorderLayout() );
panelVisibile.add(txtVisibile, BorderLayout.CENTER);
panelVisibile.add(cmdShowHide, BorderLayout.EAST);
panelVisibile.setBorder( BorderFactory.createEmptyBorder(0, 0, 30, 0) );
panelNascosto = new JPanel( new BorderLayout() );
panelNascosto.add(txtNascosta, BorderLayout.NORTH);
panelNascosto.setVisible( false );
c.add(panelVisibile, BorderLayout.NORTH);
c.add(panelNascosto, BorderLayout.CENTER);
setTitle("Pannelli nascosti");
setSize(800, 600);
setDefaultCloseOperation( EXIT_ON_CLOSE );
setLocationRelativeTo( null );
setVisible( true );
}
@Override
public void actionPerformed(ActionEvent ae) {
if ( show ) {
panelNascosto.setVisible( false );
} else {
panelNascosto.setVisible( true );
}
cmdShowHide.setText(show ? "Visualizza" : "Nascondi");
show = !show;
doLayout();
}
public static void main(String[] args) {
PanelNascosto pn = new PanelNascosto();
}
}
Prendi spunto, osserva come sono costruiti e disposti gli oggetti, studia i LayoutManager ed impara a conoscerli/usarli e farai molto prima a scrivere il codice a mano che aspettare di ottenere lo stesso risultato usando l'IDE.
Ciao