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 回答