Ragazzi in questo codice non faccio altro che creare un oggetto derivato di JPanel e vorrei che ascoltasse i propri bottoni, ma cliccando non succede nulla, in particolare sulla console dovrebbe stampare il messaggio (perché è la prima azione eseguita da actionperformed, ma non funziona!
Qualcuno saprebbe individuare l'errore ?
codice:
public class PannelloVisualizza extends Pannello implements ActionListener {
JList lista = null;
boolean isModificabile = false;
JLabel etichettaControllo = null;
ControlloreVisualizza controlloreVisualizza = null;
public PannelloVisualizza(ArrayList<String> listaPrenotazioni, boolean isModificabile) {
this.isModificabile = isModificabile;
inizializza(listaPrenotazioni);
}
private String[] ArrayListStringToListString(ArrayList<String> listaPrenotazioni) {
String [] listaStringhe = new String
[listaPrenotazioni.size()];
int i = 0;
for(String prenotazione: listaPrenotazioni) {
listaStringhe[i] = prenotazione;
i++;
}
return listaStringhe;
}
private void inizializza(ArrayList<String> listaPrenotazioni) {
this.setLayout(null);
JLabel lblEtichettaUtente = new JLabel("Professor Zuccone"); //l'argomento corretto è Contesto.getUtente().getNome()
lblEtichettaUtente.setBounds(40, 25, 200, 35);
this.add(lblEtichettaUtente);
JLabel lblControllo = new JLabel("Seleziona una prenotazione!");
lblControllo.setBounds(800, 25, 200, 35);
lblControllo.setVisible(false);
this.etichettaControllo = lblControllo;
this.add(lblControllo);
JList lista = new JList(this.ArrayListStringToListString(listaPrenotazioni));
lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //un solo oggetto della lista selezionabile per volta
lista.setBounds(40, 71, 979, 528);
this.add(lista);
this.lista = lista;
JPanel pannelloBottoni = new JPanel();
pannelloBottoni.setBounds(10, 617, 1044, 53);
pannelloBottoni.setLayout(null);
JButton btnIndietro = new JButton("Indietro");
btnIndietro.setBounds(10, 11, 115, 31);
btnIndietro.addActionListener(this);
pannelloBottoni.add(btnIndietro);
JButton btnModifica = new JButton("Modifica");
btnModifica.setBounds(919, 11, 115, 31);
btnModifica.addActionListener(this);
pannelloBottoni.add(btnModifica);
this.add(pannelloBottoni);
}
@Override
public void setControllore(Controllore controllore) {
controlloreVisualizza = (ControlloreVisualizza)controllore;
}
public void ActionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
switch (e.getActionCommand()) {
case("Modifica"):
String stringaSelezionata = (String)lista.getSelectedValue();
if(stringaSelezionata != null) {
Prenotazione prenotazioneSelezionata = controlloreVisualizza.leggiLista(stringaSelezionata);
controlloreVisualizza.modificaPrenotazione(prenotazioneSelezionata);
} else {
etichettaControllo.setVisible(true);
}
break;
case("Indietro"):
controlloreVisualizza.tornaPannelloUtente();
break;
}
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.setBounds(new Rectangle(0,0,1080,720));
ArrayList<String> a = new ArrayList<String>();
String[] prova = {"a","b","c"};
for(int i = 0;i <3; i++) {
a.add(prova[i]);
}
PannelloVisualizza p = new PannelloVisualizza(a, true);
p.setControllore(new ControlloreVisualizza());
//p.etichettaControllo.setVisible(true);
f.getContentPane().add(p);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println("Perché?");
f.setVisible(true);
}
}