Visualizzazione dei risultati da 1 a 3 su 3

Discussione: problemi java swing

  1. #1

    problemi java swing

    Ciao a tutti , ho un problema con la parte grafica di java.
    Ho creato un'applicazione di gestione di un conto corrente. Voglio poter lanciare l'applicazione da finestra grafica che ho implementato con due JButton e un JTextArea sulla quale stampare il tutto. Dato che ho implementato una sola ActionEvent per differenziare i due bottoni ho usato il metodo getActionCommand(). I due bottono funzionano perfettamente in questo modo. Ora quello che vorrei realizzare è far in modo che con un bottone carico dei dati da file, e con l'altro utilizzarli per far partite l'applicazione.

    codice:
     public void actionPerformed(ActionEvent e) {
    			// TODO Auto-generated method stub
    			command=e.getActionCommand();
    			if(command.equals("CARICA DATI"))
    			{
    			    array=controllo.caricaDati();
    				String var1="Variabile 1= "+array.get(0)+"\n";
    				String var2="Variablie 2= "+array.get(1)+"\n";
    				panel.area.append(var1);
    				panel.area.append(var2);
    			}
    			else
    			{
    				controllo.avvia(array,panel);
    			}
    			
    		}
    dove array è un ArrayList()<Integer> definita come campo privato della ActionListener
    in questo modo mi da un errore Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 nel metodo avvia quando va a leggere i dati dall'array, proprio perchè viene passato una array nuovo, non quello restituito da carica dati.

    Come posso risolvere tutto ciò?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problemi java swing

    Originariamente inviato da supernovae
    dove array è un ArrayList()<Integer> definita come campo privato della ActionListener
    in questo modo mi da un errore Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 nel metodo avvia quando va a leggere i dati dall'array, proprio perchè viene passato una array nuovo, non quello restituito da carica dati.
    Potrei anche sbagliarmi e non ne sono sicuro al 100% (perché non vedo il resto del codice ...) ma la mia impressione è che tu abbia creato 2 istanze del tuo action listener, una per un pulsante, l'altra per l'altro pulsante. Ed è chiaro che in tal caso avresti 2 variabili 'array', distinte, in istanze diverse del tuo action listener.
    Quindi ... beh, in un action listener assegni 'array' nell'altro lo usi solo ma è quello rimasto a null .... cioè sono appunto diversi!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie di aver risposto, hai proprio ragione tu. come un fesso avevo messo la variabie array come campo privato della classe actionlistener, e creato due istanze di quest'ultima....ho risolsto impostando l'array come campo privato del frame; ho creato sempre nel frame due funzioni che restituiscono e modificano l'array, così posso gestire lo stesso array con i due pulsanti diversi!

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.