Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86

    The final local variable pag cannot be assigned, since it is defined in an enclosing

    codice:
    int pag=1;
    ...
    ...
    //Next
    			next.setIcon(new ImageIcon(path_progetto+"Media/next.png"));
    			next.setBounds(455, 140, 7, 14);
    			next.addMouseListener(new MouseAdapter()
    			{
    			    public void mouseClicked(MouseEvent e) 
    			    {	
    			    	pag=pag+1;
    			    }
    			});
    			prec.addMouseListener(new MouseAdapter()
    			{
    			    public void mouseClicked(MouseEvent e) 
    			    {
    			    	pag=pag-1;
    			    }
    			});
    			    	switch (pag) {
    			    	case 1:
    ...
    ...
    ...
    };
    perchè questo codice non funziona?? nelle varibili pag ke stanno nel mouseClicked dice :
    The final local variable pag cannot be assigned, since it is defined in an enclosing type
    ke vuol dire?

  2. #2
    La variabile pag deve essere un attributo di classe. Probabilmente, dato che nello spezzone di codice da te postato non si intuisce, dichiari la variabile pag all'interno di un metodo. Prova a spostare la dichiarazione all'esterno.
    Ad esempio:

    codice:
    public class Test {
    
        private int pag1;
    
        public void metodo() {
            int pag2;
            JButton button1 = new JButton("Submit");
            button1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    pag1 = 1; // OK
                    pag2 = 1; // ERROR
                }
            });
        }
    }

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Probabilmente stai cercando di usare una variabile (pag) dichiarata all'interno del metodo. Solo che la usi all'interno di una inner-class anonymous class e per farlo hai due strade:

    1) Dichiari pag come attributo di istanza
    2) Dichiari pag come variabile final all'interno del metodo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86
    ho provato con final e non va, ho spostato la dichiarazioneall'esterno =) grazie =) sapete aiutarmi a far riprodurre un suono? non riesco =( qua

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