Se sono note a priori, cioè se sai a priori quanti componenti, al massimo, in tutto ci devono essere, le soluzioni possono essere diverse. Ad esempio una è istanziare all'inizio
tutti i componenti e poi "giocare" solo sulla "visibilità" dei componenti che devono apparire/sparire in base a certi eventi.
Conoscono già quanti sono i componenti che devono apparire e anche io volevo giocare sulla visibilità di ogniuno, ma il mio problema era su che metodo richiamare una volta cliccato il bottone perchè questo mi riaggiorni il GridLayout
Il MouseListener che ho associato al bottone è:
codice:
inserimento=new Panel(new GridLayout(4,1)); //questo è il panel a sinistra e al suo interno avrà
panel1=new Panel(new FlowLayout());//ognuno di questo visualizza o una textfiel o un bottone o una label a seconda di quale pulsante viene cliccato
panel2=new Panel(new FlowLayout());
panel3=new Panel(new FlowLayout());
panel4=new Panel(new FlowLayout());
bottone.addMouseListener(new MouseListener(){
public void mousePressed(MouseEvent e){
repaint(); //questo mi ridisegna il grafico a sinistra
}
public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
});
add(inserimento, BorderLayout.EAST);//sposta tutto a est della finestra
nel mio esempio bottone è nel panel 3, negli primi due panel sono presenti 2 textfield e nel quarto una scritta di errore che deve apparire dopo aver cliccato il bottone se i dati inseriti non sono corretti(quindi prima del click non dovrebbe vedersi)