Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    In che senso? Nel costruttore del listener mi chiamo il JButton e fin qui non è un problema
    Nel costruttore del listener tu non chiami nessuno JButton ma ti arriva l'iconea associato al JButton
    L'errore sta in questo punto
    codice:
     for(int j=1;j<=posti;j++){
                    ....
                    bPosto=new JButton(libero);
                    ....
                }
    Cioè bPosto conterrà l'ultimo jbutton che crei, quindi quando poi verrà scatenato il listener e tu invochi "bPosto.setIcon" lo invochi appunto sull'ultimo bottone creato.
    Ovviamente il bottone lo puoi passare al costruttore del listener:
    codice:
    class Seleziona implements ActionListener{
            private char f;
            private int p;
            private Icon disp;
            private JButton button;
            public Seleziona(char f,int p,JButton button,Icon disp){
                this.f=f;
                this.p=p;
                this.disp=disp;
                this.button = button;
            }
            public void actionPerformed(ActionEvent e){
                        if(disp==libero)
                            button.setIcon(selezionato);
                        if(disp==selezionato)
                            button.setIcon(occupato);
            }
    }
    		//PASSAGGIO DEL VALORE NEL FORM
    		 ActionListener listSelezione=new Seleziona(i,j,bPosto,bPosto.getIcon());
    Inoltre volendo a questo punto potresti anche omettere di passare l'iconea che cmq ti potresti recuperare dal button passato.

  2. #2
    Quote Originariamente inviata da francesco.muia Visualizza il messaggio
    Nel costruttore del listener tu non chiami nessuno JButton ma ti arriva l'iconea associato al JButton
    L'errore sta in questo punto
    codice:
     for(int j=1;j<=posti;j++){
                    ....
                    bPosto=new JButton(libero);
                    ....
                }
    Cioè bPosto conterrà l'ultimo jbutton che crei, quindi quando poi verrà scatenato il listener e tu invochi "bPosto.setIcon" lo invochi appunto sull'ultimo bottone creato.
    Ovviamente il bottone lo puoi passare al costruttore del listener:
    codice:
    class Seleziona implements ActionListener{
            private char f;
            private int p;
            private Icon disp;
            private JButton button;
            public Seleziona(char f,int p,JButton button,Icon disp){
                this.f=f;
                this.p=p;
                this.disp=disp;
                this.button = button;
            }
            public void actionPerformed(ActionEvent e){
                        if(disp==libero)
                            button.setIcon(selezionato);
                        if(disp==selezionato)
                            button.setIcon(occupato);
            }
    }
            //PASSAGGIO DEL VALORE NEL FORM
             ActionListener listSelezione=new Seleziona(i,j,bPosto,bPosto.getIcon());
    Inoltre volendo a questo punto potresti anche omettere di passare l'iconea che cmq ti potresti recuperare dal button passato.
    grazie mille francesco!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.