Sto sviluppando un programma in cui ho la necessita di mettere più JButton con la stessa etichetta, in particolare si tratta di poter scegliere la path di una o più foto tramite un JFileChooser. Ad ogni JButton corrisponde una label che mostra il percorso scelto. Il problema è come faccio a dire al listener quale bottone in particolare è stato premuto?
- Codice:
public class ModificaProdottoFrame extends JFrame{
Prodotto prodotto = (Prodotto) SessionManager.getInstance().getSESSION().get("prodottoSelezionato");
private JTextField txtNome = new JTextField();
private JTextField txtPrezzo = new JTextField();
private JTextField txtDescrizione = new JTextField();
private JTextField txtPercSconto = new JTextField();
private JCheckBox CBDisponibile = new JCheckBox();
private String[] nomiReparti = RepartoBusiness.getInstance().trovaNomeTuttiIReparti();
private JComboBox<String> CBReparti = new JComboBox<>(nomiReparti);
private JComboBox<String> CBCategorie = new JComboBox();
private String[] produttori = ProduttoreBusiness.getInstance().trovaNomeTuttiIProduttori();
private JComboBox<String> CBProduttore = new JComboBox(produttori);
private String[] distributori = DistributoreBusiness.getInstance().trovaNomeTuttiIDistributori();
private JComboBox<String> CBDistributore = new JComboBox(distributori);
private Foto foto = FotoBusiness.getInstance().trovaFotoByIdProdotto(prodotto.getIdProdotto());
private ArrayList<String[]> path = foto.getListaFoto();
private JLabel[] lblPath = new JLabel[5];
public ModificaProdottoFrame(ArrayList<Prodotto> listaProdottiTemp){
super("Modifica il Prodotto");
ModificaProdottoListener listener = new ModificaProdottoListener(this);
Container c = getContentPane();
JPanel nord = new JPanel();
JPanel centro = new JPanel();
JPanel sud = new JPanel();
JPanel sudEst = new JPanel();
JPanel sudOvest = new JPanel();
c.setLayout(new BorderLayout());
centro.setLayout(new GridLayout(12, 2));
sud.setLayout(new GridLayout(1,2));
sudOvest.setLayout(new BorderLayout());
sudEst.setLayout(new GridLayout(5,3));
c.add(nord, BorderLayout.NORTH);
c.add(centro, BorderLayout.CENTER);
c.add(sud, BorderLayout.SOUTH);
sud.add(sudOvest);
sud.add(sudEst);
JButton[] btnSfoglia = new JButton[5];
JButton[] btnEliminaFoto = new JButton[5];
int i = 0;
while (i<5){
btnSfoglia[i]= new JButton("Sfoglia");
btnEliminaFoto[i] = new JButton("X");
btnSfoglia[i].addActionListener(listener);
btnSfoglia[i].setName("path1");
btnEliminaFoto[i].addActionListener(listener);
if(i>path.size()-1) {
lblPath[i] = new JLabel("");
}
else {
lblPath[i] = new JLabel(path.get(i)[1]);
}
i++;
}
i=0;
while (i<5){
sudEst.add(btnSfoglia[i]);
sudEst.add(lblPath[i]);
sudEst.add(btnEliminaFoto[i]);
i++;
}
[getter e setter delle vari variabili...]
}