0
現在我正在研究JavaHelp內容。如何通過單擊Jbutton來觸發幫助鍵F1操作
基本上,第一種解決方案是,從樹形菜單或節點(JTree)中選擇所選功能並按下幫助鍵(F1)後,它將基於所選節點彈出特定JavaHelp內容。
現在,即時嘗試添加幫助按鈕,用戶首先需要從樹形菜單或節點中選擇功能,然後單擊我創建的幫助按鈕。它假定工作與第一種解決方案完全相同,但現在它不會彈出正確的內容。
如何使幫助按鈕觸發F1鍵操作?這意味着當我們選擇節點時,它已經有一個焦點,如果我們按下F1鍵,直接彈出,幫助按鈕可能只是觸發F1鍵操作。
我聽說過關於doClick函數或鍵盤綁定的問題嗎?
感謝
問候, Aznimah
嗨,我嘗試實施鍵綁定觸發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());
的ActionListener:
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鍵作用?真的需要這個
感謝
您好感謝您的答覆。 我只是通過給出的鏈接,但不完全理解。 現在,我只需選擇樹形菜單或節點,然後直接單擊幫助按鈕。我如何將幫助按鈕與觸發幫助鍵F1操作相關聯? –
是的,非常感謝你的回覆, 無論如何,我還有一個問題,我如何觸發F1鍵功能,這意味着它不需要鍵盤上的按鍵就可以實現FI鍵的編程 –
您可以改用KeyBindings。 Docs可以在這裏找到[KeyBindings](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) –