如何在没有右键单击的情况下使用awt或swing进行弹出菜单?

时间:2014-08-18 06:12:36

标签: java swing awt contextmenu popupmenu

我想使用AWT或Swing编写类似于java中的上下文菜单的弹出菜单,但是我需要在键入键时显示,例如“。” 我正在查看上下文菜单,但需要右键单击。 我该怎么做?任何的想法... 感谢。

2 个答案:

答案 0 :(得分:2)

首先看看How to Use Key BindingsHow to Use Menus,特别是Bringing Up a Popup Menu

基本上,您需要为指定键的组件注册键绑定,并在触发相应的actionPerformed事件时显示弹出菜单...

InputMap im = getInputMap(WHEN_IN_FOCUSED_WINDOW);
ActionMap am = getActionMap();

im.put(KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD, 0), "popup");
am.put("popup", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        popup.pack();
        Dimension popupSize = popup.getPreferredSize();
        int width = getWidth();
        int height = getHeight();

        int x = (width - popupSize.width) / 2;
        int y = (height - popupSize.height) / 2;

        popup.show(TestPane.this, x, y);
    }
});

答案 1 :(得分:0)

您好您可以添加键监听器和按键 请确保有条件的"。"按下该键,在该块中通过使用Robot类为内容菜单键按钮进行自动按键事件。

或者您可以进行右键单击按钮事件。