Forward d'évennements vers une combobox
Bonjour,
J'ai besoin de forwarder des évènements MouseEvent (mouse click) à une JComboBox pour qu'au final, la combobox ouvre son drop down menu. J'ai tenté ce morceau de code :
Code:
combobox.dispatchEvent((MouseEvent) SwingUtilities.convertMouseEvent(table, e, combobox));
Le MouseEvent provient d'une JTable. J'ai cette exception qui se lance lors du clique (l'erreur provient de la ligne de code énoncée plus haut) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1943)
at java.awt.Component.getLocationOnScreen(Component.java:1917)
at javax.swing.JPopupMenu.show(JPopupMenu.java:887)
at javax.swing.plaf.basic.BasicComboPopup.show(BasicComboPopup.java:191)
at javax.swing.plaf.basic.BasicComboPopup.togglePopup(BasicComboPopup.java:1110)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mousePressed(BasicComboPopup.java:807)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
at java.awt.Component.processMouseEvent(Component.java:6260)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at ... |
J'utilise le même procédé pour un bouton et ça marche bien. Ma combobox est bien remplie et visible. J'ai bien tenté un getComponentPopupMenu().setVisible(true) sur la combobox et un repaint() mais rien n'y fait..
Qu'est ce que je fais de mal ? Merci d'avance.