1

osx で Java-7 を使用しているときに、ホットキー Command + Equals をメニュー項目に設定すると、トリガー時に複数回呼び出されます。

この動作を示す簡単なアプリケーションを作成しました。ホットキーは、コンソールにシステム時間を出力するだけです。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

public class newWindow {
    static JFrame newWindow;

    public static void main(String args[]) {
        new newWindow().createWindow();
    }

    public static void createWindow() {
        newWindow = new JFrame("Window1");
        //Where the GUI is created:

        JMenuBar menuBar;
        JMenu menu;
        JMenuItem menuItem;

        //Create the menu bar.
        menuBar = new JMenuBar();
        newWindow.setJMenuBar(menuBar);
        newWindow.setVisible(true);

        //Build the first menu.
        menu = new JMenu("A Menu");
        menuBar.add(menu);

        //a group of JMenuItems
        menuItem = new JMenuItem("A text-only menu item");
        menuItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(final ActionEvent e) {
                System.out.println(System.currentTimeMillis());
            }
        });
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS,
                Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
            menu.add(menuItem);
    }
}

お気軽にコードを試してみて、同じことが発生した場合はお知らせください。

4

1 に答える 1

1

私も同じ問題を抱えてる。ただ、Java 1.8で挙動が修正されたようで、修正されたようです。

于 2014-09-09T05:53:11.577 に答える