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); } }

Rispondi quotando