Il problema è che i pannelli sono creati dinamicamente da un metodo: RIPORTO IL CODICE::
codice:
private void aggiungi_pannello() {
JPanel Pcella = new JPanel();
JList lista=new JList();
Conv_cliente.add(conversazione); //mi salvo la conversazione presa in carico
Jlist_clienti.add(lista); //mi salvo la lista
JScrollPane scrollTweet= new JScrollPane(lista);
lista.setListData(conversazione.toArray());
Pcella.setLayout(new BorderLayout());
scrollTweet.setPreferredSize(new Dimension(300,200));
Pcella.add(scrollTweet,BorderLayout.CENTER); //ogni Pannello cella ha scroll e bottone
JButton B_DelConv = new JButton("ARCHIVIA");
JButton Riduci = new JButton("RIDUCI");
B_DelConv.setBackground(Color.red);
Riduci.setBackground(Color.blue);
Pcella.add(Riduci,BorderLayout.NORTH);
Pcella.add(B_DelConv,BorderLayout.SOUTH);
Riduci.addActionListener(new Riduci_Jlist());
B_DelConv.addActionListener(new archivia_cliente());
if(X==1){ //inserisco in le celle nella posizione corretta del pannello
X=0;
Y=Y+1;
c.gridx=X;
c.gridy=Y;
QueryResult.add(Pcella,c);
}else{
X=X+1;
c.gridx=X;
c.gridy=Y;
QueryResult.add(Pcella,c);
}
invalidate(); //aggiornamento
validate();
repaint();
}
}
La cosa interessante è che questo metodo è chiamato da un button e dunque è all'interno di un Action Listner e fin qui ok!!
Ora vedete che ogni pannello che crea questo metodo ha 2 jbutton?? come faccio a dire che questo jbutton deve rimuovere il pannello in cui esso (button) si trova? all'interno di ::
codice:
class Riduci_Jlist implements ActionListener{
public void actionPerformed (ActionEvent e){
//qui non posso usare le variabili del jpanel infatti se facessi
//Jbutton Riduci.getParent(); non è visibile....
}
}
Dunque è possibile con un jButton creato su un pannello dinamicamente cancellare il pannello?? Sembra davvero difficile..
In alternativa se facessi un unico bottone fuori da c***o potrei selezionare con il mouse il pannello che voglio cancellare e cancellarlo?? grazie