をポップダウン、私はサブメニューのセットを表示するのPopupMenuを持っている:JMenuのsetDelayは()私のアプリケーションでは遅延
private static JMenu createMenu(String title) {
JMenu menu = new JMenu(title);
menu.setDelay(2000);
menu.add(new JMenuItem("123"));
menu.add(new JMenuItem("234"));
menu.add(new JMenuItem("345"));
return menu;
}
public static void main(String[] args) {
JFrame frame = new JFrame("Hello");
final JButton button = new JButton("Test");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JPopupMenu jpm = new JPopupMenu();
jpm.add(createMenu("XXX"));
jpm.add(createMenu("YYY"));
jpm.add(createMenu("ZZZ"));
jpm.show(button, 0, 0);
}
});
frame.add(button);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
}
このアプリケーションは、通常、Windows上で動作します。
最初に最初のXXXサブメニューにマウスオーバーします。時には、誤ってマウスをYYY上に動かすと、最初のサブメニューがすぐに消えてしまいます。
Javadocを読んだことで、JMenu.setDelay(2000)を呼び出すと、JMenuのポップアップメニューが2秒間待ってからポップダウンすることが示唆されるはずです。ただし、ポップアップの2秒前に次のメニューを遅らせるだけのようです。
ポップアップを遅らせる方法はありますか?
@Huey私はこの問題を指摘しているようなバグへのリンクを、2007年から開いています –
本当に遅延が望めば、JMenuを拡張して何かをすることができます私はJMenuのソースを見ていましたが、それを行うための単純な方法ではないようです –