0

现在我正在处理 JavaHelp 内容。

基本上,第一个解决方案,在您从树形菜单或节点 (JTree) 中选择所选功能后,按下帮助键 (F1) 后,它将根据所选节点弹出特定的 JavaHelp 内容。

现在,我正在尝试添加帮助按钮,用户首先需要从树形菜单或节点中选择功能,然后单击我创建的帮助按钮。它假设与第一个解决方案完全相同,但现在,它不会弹出正确的内容。

如何使帮助按钮触发 F1 键操作?这意味着当我们选择节点时,它已经有一个焦点 n 如果我们按下 F1 键可以直接弹出,帮助按钮可能只是触发 F1 键动作。

我听说过 doClick 功能或键绑定,对此有什么想法吗?

谢谢

问候, 阿兹尼玛

嗨,我尝试实现键绑定以在用户单击帮助按钮时触发 F1 键操作。但我不知道如何设置代码来触发 F1 键动作。这是一些代码:

动作按钮:

final String helpIconLocation = new String("/icons/help_new.png");
        iconResource = CustomizedToolbar.class.getResource(helpIconLocation);
        icon = new ImageIcon(iconResource);
        actionButton = new JButton(icon);
        actionButton.setFocusable(false);
        actionButton.addActionListener(new JavaHelpHandler());

动作监听器:

private class JavaHelpHandler implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent arg0) {

            Action javaHelpF1KeyAction = new AbstractAction();
            KeyStroke helpKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
            MainApp.getMainAppPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
                    helpKeyStroke, "F1");
            MainApp.getMainAppPanel().getActionMap().put("F1", javaHelpF1KeyAction);

        }

    }


    private class AbstractAction implements ActionListener, Action {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TO display popup javaHelp content
            HelpSystemUtil.getInstance().enableHelpFromFocus(actionButton);
        }

        @Override
        public void addPropertyChangeListener(PropertyChangeListener listener) {
            // TODO Auto-generated method stub

        }

        @Override
        public Object getValue(String key) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public boolean isEnabled() {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public void putValue(String key, Object value) {
            // TODO Auto-generated method stub

        }

        @Override
        public void removePropertyChangeListener(PropertyChangeListener listener) {
            // TODO Auto-generated method stub

        }

        @Override
        public void setEnabled(boolean b) {
            // TODO Auto-generated method stub

        }

    }

如何设置 actionMap 以触发 F1 键操作?真的需要帮助

谢谢

4

1 回答 1

1

您可以做的最好的方法是创建一个 Key Listener。

按键监听器

有几种方法可以做到这一点。这是一个:

    yourComponent.addKeyListener(new KeyAdapter () {
         @覆盖
         公共无效keyPressed(KeyEvent e){

              如果(e == YOUR_KEY_CODE){
                   // 做点什么
              }

         }
    });

无论如何,F1的键码是112

于 2012-12-04T03:38:39.397 回答