Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    4

    Perché il metodo ActionPerformed non viene eseguito ?

    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);
        }
    }
    Ultima modifica di LeleFT; 07-02-2018 a 17:42 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Lucat95 Visualizza il messaggio
    Qualcuno saprebbe individuare l'errore ?

    public void ActionPerformed(ActionEvent e) {
    Hai messo la A, facendo quindi un metodo diverso, in più, invece che un override. Il tuo codice non dovrebbe nemmeno compilare visto che non soddisfa la interfaccia.
    Ultima modifica di andbin; 07-02-2018 a 17:40
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.