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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.