Il semble y avoir well-known il y a un bug lors de l'utilisation de JMenuItem.getRootPane(). J'ai lu la description du bogue mais je n'arrive pas à trouver une solution. Connaissez-vous le code de contournement pour cela dans une méthode Action.actionPerformed()?JMenuItem.getRootPane() solution de contournement?
Mise à jour: J'obtiens ceci maintenant mais cela ne fonctionne pas avec les sous-menus.
public void actionPerformed(ActionEvent e) {
Component c = (Component) e.getSource();
if (c instanceof JMenuItem) {
c = ((JPopupMenu)((JMenuItem)c).getParent()).getInvoker();
}
Component z = SwingUtilities.getRootPane(c);
}
Je l'avais avant mais je ne pense pas que le code soit plus facile à lire et je ne peux pas utiliser les arguments par défaut d'Action contructor w/o. Je vous remercie. – PeterMmm