well-knownのようですが、JMenuItem.getRootPane()を使用するとバグがあります。 私はバグの説明を読みましたが、私は回避策を見つけることができません。 Action.actionPerformed()メソッドで回避コードを知っていますか?JMenuItem.getRootPane()回避策?
更新:私はこれを今でも受けていますが、それはサブメニューでは機能しません。 ((JPopupMenuを)((JMenuItemを)((JMenuItemを)C).getParent(:
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);
}
私はこれまでにこれを持っていましたが、コードが読みやすくて簡単ではないと思います。デフォルトのActionコンストラクタをw/o引数として使用することはできません。ありがとうございました。 – PeterMmm