Ciao a tutti.
Dovrei scrivere un ascoltatore che "ascolta" quando viene cliccato ovvero selezionato un item di una JComboBox
Sicuramente credo ci vorrà un ascoltatore implementa MouseListener;
qualcuno mi aiuta su come scrivere questo ascoltatore?
Ciao a tutti.
Dovrei scrivere un ascoltatore che "ascolta" quando viene cliccato ovvero selezionato un item di una JComboBox
Sicuramente credo ci vorrà un ascoltatore implementa MouseListener;
qualcuno mi aiuta su come scrivere questo ascoltatore?
a dir la verità solitamente si usa un ItemListener...
potremmo anche aiutarti ad implementarlo, cosa molto banale, a patto che tu ci dica cosa dovresti fare.
Inizia a dare un'occhiata alla guida della sun ed alla documentazione...
I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html
Devo fare questo :
Allora Io ho una JComboBox che contiene una serie di item.
Devo scrivere un ascoltatore che invochi un determinato metodo quando seleziono un determinato item del box cioè quando clicco la freccetta per aprire il box e poi clicco sull'item che mi interessa.
Prometti di non usare mai più il termine "ascoltatore" che non si può proprio sentire e ti aiuto![]()
Allora, creare il tuo listener è molto semplice:
1) Ti serve una classe che faccia da listener, supponiamo sia la principale:
2) Implementi il metodo actionPerformed così:codice:public class MiaClasse implements ActionListener
3)Aggiungi il listener dopo aver creato la combobox:codice:public void actionPerformed(ActionEvent e) { //... se hai più azioni prima capisci se l'evento si riferisce alla combobox ... JComboBox cb = (JComboBox)e.getSource(); //ottieni la combobox String selected = (String)cb.getSelectedItem(); //ottieni l'oggetto selezionato faiQualcosa(); //usi il tuo metodo }
Cmq è tutto spiegato qui: http://docs.oracle.com/javase/tutori.../combobox.html con tanto di esempio funzionantecodice:comboList.addActionListener(this);
Come hai fatto tu il listener viene invocato anche quando si modifica il JComboBox (Cioè quando inserisco un altro elemento nel JComboBox)
Fidati....provato su eclipse.
Io voglio un ascoltatore che invochi un determinato metodo SOLAMENTE quando clicco sul JComboBox e seleziono un determinato elemento.
Mi aiuti?
Non che questo dia una qualche autorevolezza alle prove, eh...Originariamente inviato da Markus85
Fidati....provato su eclipse.
Devi agire esattamente come ti ha già suggerito Dark867, prestando però attenzione ad un fatto: l'esecuzione del metodo deve avvenire solo in un caso particolare, ovvero quando la tendina del JComboBox è visibile.Io voglio un ascoltatore che invochi un determinato metodo SOLAMENTE quando clicco sul JComboBox e seleziono un determinato elemento.
Mi aiuti?
Ciao.codice:public void actionPerformed(ActionEvent ae) { ... // Altre eventuali condizioni JComboBox src = (JComboBox) ae.getSource(); if ( src.isPopupVisible() ) { // L'evento è stato scatenato da un clic sugli elementi della lista // e non dall'INVIO sull'editor kit doYourStuff(); } }![]()
"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
Ma perché tu a run-time inserisci altri valori nel JComboBox che non devono venir presi?
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
Ok Lele. Lo provo e ti faccio sapere.
Schumy2000 , spiegati meglio.
Ciaooooo
Originariamente inviato da Markus85
Fidati....provato su eclipse.![]()
grazie mi hai rallegrato la giornata.
Detto questo, tornando seri, se ho capito bene quello che tu necessiti non è tanto un ActionListener, ma quanto un ItemListener, cioè qualcosa che venga invocato quando selezioni un elemento della combo....ho capito bene il problema? Trovi sia più adatto?
In ogni caso guardando la documentazione dovresti trovare queste info (uguale anche a quello che ti ha suggerito LeleFt )
RTFM Read That F*** Manual!!!