Problema con jMenuItem

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
The_echelon
Prode Principiante
Messaggi: 136
Iscrizione: venerdì 20 luglio 2007, 23:56

Problema con jMenuItem

Messaggio da The_echelon »

Salve a tutti!
Stavo facendo una semplice agenda in java (con netbeans).
Mi sono creato un menu con un  jMenuItem, il quale vorrei che cancelli tutti i jTextField.
Le istruzioni sono queste:

Codice: Seleziona tutto

 private void jMenuItem1MouseClicked(java.awt.event.MouseEvent evt) {                                        
        // pulisci schermo
        jTextArea1.setText("");
        jTextField1.setText("");
        jTextField2.setText("");
        jTextField3.setText("");
    }
Ma quando avvio l'applicazione non ha nessun effetto.
Mentre creandomi un pulsante sulla finestra con le stesse istruzioni, funziona, cancellando il contenuto dei jTextField.
Io vorrei che queste operazioni siano svolte da jMenuItem1.....Come posso fare???
### Coltiva Linux che tanto Windows si pianta da solo ###
(k)ubuntu user #16487
Avatar utente
joaquin
Prode Principiante
Messaggi: 116
Iscrizione: giovedì 12 aprile 2007, 22:54

Re: Problema con jMenuItem

Messaggio da joaquin »

Secondo me è l'evento che sbagli se procedi nel seguente modo funziona al 100%:
Se ad esempio hai un JItemMenu che chiamiamo jMenuItem1 e a questo aggiungiamo un ascoltatore di evento a questo item del tipo

jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1.setText("");
            }

funziona o addirittura puoi chiamare un metodo in questo modo

jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cancella(evt);
            }

private void cancella(java.awt.event.ActionEvent evt) {
        jTextField1.setText("");
    }
joaquin
Avatar utente
The_echelon
Prode Principiante
Messaggi: 136
Iscrizione: venerdì 20 luglio 2007, 23:56

Re: Problema con jMenuItem

Messaggio da The_echelon »

Dovrei fare cosi? ???

Codice: Seleziona tutto

private void jMenuItem1MouseClicked(java.awt.event.MouseEvent evt) {                                        
        // pulisci schermo
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() 
        {
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                jTextField1.setText("");
            }
        } 
    }      
Perchè mi ha questo errore:

Codice: Seleziona tutto

/home/desktop/NetBeansProjects/agenda/src/finestra.java:305: ')' expected
Dove ho sbagliato?
### Coltiva Linux che tanto Windows si pianta da solo ###
(k)ubuntu user #16487
Avatar utente
ElFranxo
Prode Principiante
Messaggi: 164
Iscrizione: sabato 20 ottobre 2007, 16:52
Località: Bologna

Re: Problema con jMenuItem

Messaggio da ElFranxo »

Ciao, direi che se vai alla riga 305 controlla che non manchi qualche parentesi..magari evidenzia quale è così ci risulta più facile capire dove sta l'inghippo.

Comunque con NetBeans hai una comodissima gestione degli eventi nel riquadro laterale quando implementi l'interfaccia grafica, dovrebbe bastare un doppio click sull'evento corrispondente nell'elenco per far generare del codice automaticamente, vuoto chiaramente, da riempire a piacimento.

EDIT:
ti manca una parentesi tonda chiusa ")" alla terza riga...prova con:

Codice: Seleziona tutto

private void jMenuItem1MouseClicked(java.awt.event.MouseEvent evt) {                                        
        // pulisci schermo
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() )
        {
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                jTextField1.setText("");
            }
        } 
    }    
Ultima modifica di ElFranxo il martedì 4 marzo 2008, 0:51, modificato 1 volta in totale.
"...no Windows or Gates needed, in a free World..."
Avatar utente
The_echelon
Prode Principiante
Messaggi: 136
Iscrizione: venerdì 20 luglio 2007, 23:56

Re: Problema con jMenuItem

Messaggio da The_echelon »

Ho provato ag aggiungere una parentesi come detto da ElFranxo a:

Codice: Seleziona tutto

jMenuItem1.addActionListener(new java.awt.event.ActionListener() )
Ma cosi facendo mi dice che non trova il main e non funziona ???
Cos'altro posso fare?
### Coltiva Linux che tanto Windows si pianta da solo ###
(k)ubuntu user #16487
Avatar utente
ElFranxo
Prode Principiante
Messaggi: 164
Iscrizione: sabato 20 ottobre 2007, 16:52
Località: Bologna

Re: Problema con jMenuItem

Messaggio da ElFranxo »

Come hai creato il progetto?
Hai fatto un progetto vuoto con dentro una JFrame con incluso il main e poi da lì hai inizializzato tutti i componenti?
Se non ti trova il main probabilmente stai avviando la classe sbagliata o l'hai assegnata come main class erroneamente.
Controlla questi settaggi.
Altrimenti posta tutta la classe  (good)
"...no Windows or Gates needed, in a free World..."
Avatar utente
IppatsuMan
Prode Principiante
Messaggi: 199
Iscrizione: mercoledì 14 febbraio 2007, 1:31
Contatti:

Re: Problema con jMenuItem

Messaggio da IppatsuMan »

Il metodo di Joaquin è corretto, mancano solo un paio di parentesi (una graffa per terminale lo scope

jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        jTextField1.setText("");
    }
});


Idem per il secondo codice che ha proposto:
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        cancella(evt);
    }
});

private void cancella(java.awt.event.ActionEvent evt) {
    jTextField1.setText("");
}


Le classi create "al volo" in questo modo sono dette "classi anonime" (o "anonymous classes" per gli anglofili).
ハッカー
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti