PDA

View Full Version : [JAVA - interfaccia grafica] Mi aiutate a scegliere il listener object + appropriato?


PaVi90
16-02-2008, 08:56
Ciao a tutti,
sto iniziando a cimentarmi con la programmazione visuale in Java. Mi servirebbe un opportuno listener object che, selezionato un elemento col mouse in una combobox, faccia determinate operazioni (queste operazioni le ho già definite, il problema è in quale listener object implementarle!).
Ad esempio ho usato il KeyReleased per far sì che ogni volta che si ricerca un elemento in una combobox mediante tastiera venga eseguito determinato codice (si tratta di una combobox di comuni, 8082, e ad esempio selezionando la combobox col mouse o col Tab e inserendo da tastiera il nome di una città, ad esempio "Roma", entra in gioco correttamente il KeyReleased).
Il problema invece compare quando, come detto prima, voglio selezionare un elemento col mouse nella combobox: se si seleziona un elemento nella combobox mediante il clic del mouse, ho provato ad usare ognuno di questi ascoltatori:

mousereleased
mousepressed
mouseexited
mouseentered
mouseclicked
mousemoved
mousedragged

ma hanno tutti il problema che vengono eseguite le operazioni dovute l'indice solo se si ripassa col mouse successivamente, una seconda volta, sulla
combobox oppure si riclicca per una seconda volta sulla combobox stessa.
Non credo di avere a disposizione altri eventi del mouse per la combobox... che faccio? :help: :help:
Un grazie anticipato a chi mi aiuterà

PaVi90
16-02-2008, 16:07
scusate se uppo, ma sarebbe abbastanza urgente :(
Sto impazzendo a furia di implementare tutti i listener possibili :cry:

lovaz
16-02-2008, 17:11
Ma non basta il semplice ActionListener?

PaVi90
16-02-2008, 17:14
Ma non basta il semplice ActionListener?
Grazie per essere intervenuto ;)
Aspe che provo... finora mi sono concentrato solo sui vari mouselistener...

PaVi90
16-02-2008, 17:16
Si funziona! :winner:
Era "ActionPerformed". Grazie infinite ;)

PaVi90
16-02-2008, 17:23
Altra domanda... devo inserire un oggetto ascoltatore per una casella di testo in cui è possibile inserire solo lettere (maiuscole o minuscole). Ho usato il KeyReleased, con il seguente codice (funzionante):

private void NomeKeyReleased(java.awt.event.KeyEvent evt) {
char car = Nome.getText().charAt(Nome.getText().length()-1);

if ((car <'A' || car >'z') || (car>'Z' && car<'a')) {
Nome.setText(Nome.getText().substring( 0, Nome.getText().length()-1));
}
}

Tuttavia se da tastiera si mantiene pigiato un tasto, vengono inseriti e accettati nella casella di testo anche i caratteri "extra-alfabetici". Cosa consigliate in merito?