現在、JavaHelp コンテンツに取り組んでいます。
基本的に、最初のソリューションでは、ツリー メニューまたはノード (JTree) から選択した機能を選択し、ヘルプ キー (F1) を押すと、選択したノードに基づいて特定の JavaHelp コンテンツがポップアップ表示されます。
現在、ヘルプ ボタンを追加しようとしています。ユーザーはまず、ツリー メニューまたはノードから機能を選択し、作成したヘルプ ボタンをクリックする必要があります。最初のソリューションとまったく同じように機能すると思われますが、現在、正しいコンテンツがポップアップしません。
F1 キー アクションをトリガーするヘルプ ボタンを作成するにはどうすればよいですか? つまり、ノードを選択すると、すでにフォーカスがあり、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
}
}
F1キーアクションをトリガーするようにactionMapを設定するにはどうすればよいですか? これについて本当に助けが必要です
ありがとう