View Full Version : [Java] Popup visibile alla pressione di un tasto!
Salve io ho un JTextField, vorrei che al momento della pressione di un tasto, si potessero vedere (su una JList ad esempio) tutti i suggerimenti! (tipo Eclipse, che quando scrivo codice mi apre una JList con tutti i metodi applicabili a quell'ogetto).
La parte per riempira la JList ci sono riuscito, il proplema è ora impostare il popup in automatico senza dover premere il tasto destro del Mouse?
Io ho la mia Jlist installata su un JScrollPane, questa l'ho definita come JPopUpMenu!! Il problema è che la visualizzo solo se clicco sul tasto dx del mouse!
C'è un modo per farla comparire automaticamente??? :muro:
Grazie Ancora.
^TiGeRShArK^
18-12-2006, 20:24
Salve io ho un JTextField, vorrei che al momento della pressione di un tasto, si potessero vedere (su una JList ad esempio) tutti i suggerimenti! (tipo Eclipse, che quando scrivo codice mi apre una JList con tutti i metodi applicabili a quell'ogetto).
La parte per riempira la JList ci sono riuscito, il proplema è ora impostare il popup in automatico senza dover premere il tasto destro del Mouse?
Io ho la mia Jlist installata su un JScrollPane, questa l'ho definita come JPopUpMenu!! Il problema è che la visualizzo solo se clicco sul tasto dx del mouse!
C'è un modo per farla comparire automaticamente??? :muro:
Grazie Ancora.
ehm...:mbe:
xkè nn implementi un KeyListener ke alla pressione di un tasto qualsiasi non faccia passare un timeout (in un altro thread ovviamente...nn ci provare minimamente a farlo sullo stesso thread del dispatcher degli eventi della JVM :asd: ) e allo scadere di questo timeout ti visualizza la JList? :stordita:
Non è possibile farlo sull'evento?
^TiGeRShArK^
19-12-2006, 19:36
Non è possibile farlo sull'evento?
cosa non è possibile farlo sull'evento? :mbe:
devi catchare l'evento con un KeyEventListener e gestirlo come meglio credi (in questo caso aspettare un timeout e visualizzare il popup)....
Ok, faccio partire un thread che funziona da timer!
Poi vorrei che quando l'utente clicchi sul suggerimento la mia JList sparisca!
Per ora la Jlist mi rimane visibile fino a che non riclicco sul JTextField!
:help:
E Poi qual'è il metodo per far visualizzare il popup?
:muro:
^TiGeRShArK^
20-12-2006, 20:11
Ok, faccio partire un thread che funziona da timer!
Poi vorrei che quando l'utente clicchi sul suggerimento la mia JList sparisca!
Per ora la Jlist mi rimane visibile fino a che non riclicco sul JTextField!
:help:
ehm..:mbe:
ma leggere questi tutorial? :D
http://java.sun.com/docs/books/tutorial/uiswing/events/index.html
Pensavo ke un'idea base sui listener ce l'avessi :p
cmq x fare scomparire la jlist dopo ke hai cliccato su di lei basta aggiungere un altro EventListener (questa volta un MouseListener) e gestirlo opportunamente nel metodo mouseClicked() di cui dovrai fare l'override nel tuo listener ;)
Qualcosina ho risolto!!!
Per renderlo visibile, semplicemente faccio:
popup.show(e.getComponent(), e.getX(), e.getY());
ove popup è la mia JList.
e per disattivarlo:
sul click dell'utente: popup.setVisible(false);
Ora il problema è rendere la Jlist dinamica, cioè modificabile a seconda delle parole che l'utente inserisce nella JTextField!
Qualche idea???
Grazie.
^TiGeRShArK^
21-12-2006, 10:58
Qualcosina ho risolto!!!
Per renderlo visibile, semplicemente faccio:
popup.show(e.getComponent(), e.getX(), e.getY());
ove popup è la mia JList.
e per disattivarlo:
sul click dell'utente: popup.setVisible(false);
Ora il problema è rendere la Jlist dinamica, cioè modificabile a seconda delle parole che l'utente inserisce nella JTextField!
Qualche idea???
Grazie.
:D
Forza che ormai dovresti avere capito il meccanismo :D
Se non ho capito male vorresti che la tua lista visulaizzasse parole diverse a seconda del tasto che spingi una volta che è selezionata...
esempio...spingi il tasto "M" e scorre la lista visualizzando nella prima riga la prima parola che inizia con la m e le altre di seguito.
Per risolvere questo problema ovviamente (:D) devi modificare il tuo KeyEventListener associato alla JTextBox in modo ke gestisca correttamente la visualizzazione della tua JList.
Ad esempio, ogni volta che viene scritto un nuovo carattere nella JTextBox perfezionerazi la ricerca nella tua JList scorrendola a partire dalla parola giusta :p
Forza ke ci 6 quasi :D
Quello della Lista l'ho risolto utilizzando un treeset ed un sortedset!
Il problema è che quando visualizzo il popup si prende il focus quindi riesco a digitare solo il primo carattere e la lista mi compare subito, quindi non riesco più a scrivere sul jtextfield!
Nessuno può indicarmi la strada?!?!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.