Vi scrivo un po' di codice prima di esporvi il problema.
...
...
private void initGUI() {
try {
this.setPreferredSize(new java.awt.Dimension(640, 480));
this.setSize(640, 480);
this.setLayout(null);
jPanel1=new RPanel();
jPanel1.setLayout(null);
jPanel2=new RPanel();
jPanel2.setLayout(null);
{
JScrollPane scroll1 = new JScrollPane(jPanel1);
JScrollPane scroll2 = new JScrollPane(jPanel2);
jSplitPane2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,scroll1,scrol l2);
this.add(jSplitPane2);
jSplitPane2.setBounds(0, 0, 185, 454);
jSplitPane2.setDividerLocation(100);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
...
...
public class RPanel extends JPanel {
private String[]dest1;
private int i;
public RPanel(){
super();
dest1=utility.listafile("Data/");
int d = 5;
for (i = 0; i < dest1.length; i++){
add(new RJButton(dest1[i],d));
d+=25;
}
}
}
public class RJButton extends JButton {
private int d;
public RJButton(String lab,int d){
super();
final String tmp=lab;
setMargin(new Insets(0, 0, 0, 0));
setText(lab);
setBounds(5, d, 170, 25);
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println(tmp);
create2(tmp);
}
});
}
}
...
...
public class RJButton2 extends JButton {
private int d;
public RJButton2(String lab,String datasetread,int d){
super();
final String tmp=lab;
final String dsr= datasetread;
setMargin(new Insets(0, 0, 0, 0));
setText(lab);
setBounds(5, d, 170, 25);
}
}
...
...
private void create2 (String datasetread){
String[]dest2=utility.listafile("Data/"+datasetread);
int f =5;
for (int y = 0; y < dest2.length; y++){
jPanel2.add(new RJButton2(dest2[y],datasetread,f));
f+=25;
}
}
Questo codice mi genera un frame con all'interno un "JSplitPane".
Nella parte superiore (JPanel1)ho un "RPanel" che mi genera un pulsante per ogni cartella all'interno di "Data/". Cliccando su ognuno di questi vorrei ottenere un pulsante all'interno della parte inferiore (JPanel2) per ognuno dei file all'interno della cartella corrispondente al bottone in JPanel1.Questo viente realizzato attraverso la funzione "create2 (String datasetread)" .Sembra funzionare tutto quando clicco su un pulsante nella parte superione generandomi i pulsanti desiderati nella parte inferiore.
Il problema sorge quando premo su un altro pulsante della parte superiore perche non mi aggiorna il jPanel sotto.
Dovrei trovare un modo per cancellare tutti i pulsanti generati col primo click, in modo da visualizzare con correttezza quelli generati cliccando su un altro pulsante.
Avete suggerimentisu come modificare il codice? Grazie...

Rispondi quotando