PDA

View Full Version : [java-swing]problemi con jComboBox.showPopup


MEMon
06-11-2010, 15:14
Sto facendo un componente con l'autocompletamento, e sto utilizzando come base una jcombobox.
Chiamo showPopup quando trovo un matching tra la parola che si sta digitando e i suggerimenti indicati.

Il problema è che potrebbe venir chiamato anche in condizioni strane(ad esempio subito dopo che il componente viene stanziato ma che ancora non è visibile) quindi mi lancia una eccezzione:

Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location


La conosco bene, ho sempre risolto con un

if(comboBox.isDisplayable()){
comboBox.showPopup();
}


Ma non capisco come mai questa volta non funziona...

Sapete se c'è altro che devo controllare prima di poter chiamare showPopup su una comboBox?

MEMon
06-11-2010, 15:20
Sto facendo un componente con l'autocompletamento, e sto utilizzando come base una jcombobox.
Chiamo showPopup quando trovo un matching tra la parola che si sta digitando e i suggerimenti indicati.

Il problema è che potrebbe venir chiamato anche in condizioni strane(ad esempio subito dopo che il componente viene stanziato ma che ancora non è visibile) quindi mi lancia una eccezzione:

Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location


La conosco bene, ho sempre risolto con un

if(comboBox.isDisplayable()){
comboBox.showPopup();
}


Ma non capisco come mai questa volta non funziona...

Sapete se c'è altro che devo controllare prima di poter chiamare showPopup su una comboBox?

Come non detto, sembra fatto apposta, ogni volta che posto qui poco dopo trovo la soluzione, e dire che prima di convincermi a postare provo e riprovo e cerco in lungo e in largo... :doh:

Comunque, la soluzione è questa

if(comboBox.isDisplayable()&&comboBox.isShowing()) {
comboBox.showPopup();
}