私はいけないが、私は要件の画像をアップロードしています任意の助けがスイングでjtoolbarのショートカットキーを見つけるのに問題がありますか?
をいただければ幸い、コードについての手掛かりを持って、あなたは、私が利用可能なすべてのショートカットキーを実装したいが、私は任意の手掛かりを持っていけない、特定のツールバーのためにそれを見ることができますどこ
私はいけないが、私は要件の画像をアップロードしています任意の助けがスイングでjtoolbarのショートカットキーを見つけるのに問題がありますか?
をいただければ幸い、コードについての手掛かりを持って、あなたは、私が利用可能なすべてのショートカットキーを実装したいが、私は任意の手掛かりを持っていけない、特定のツールバーのためにそれを見ることができますどこ
最初の考えを開始するには:「それは簡単です、RTFT」を、最初のコードスニペットを吐き出し:
Action action = new AbstractAction("clear text") {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("triggered the action");
}
};
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("F1"));
JToolBar bar = new JToolBar();
bar.add(action);
// set toolbar to frame and be happy
は、F1 ...右、何も押していないに何が起こるかを推測。
ツールバーのボタンは、メニューバーのように表示されます。はデフォルトでアクセラレータキーをサポートしていません。これは(?誰)私には予想外だし、いくつかの理由
二彼らはネイティブアプリケーションでサポートされていないのSwingチーム
は今の質問は、OPが同様に彼/彼女のアプリケーションでメニュー/バーがあるかどうか、です。完全な答えはそれに依存します:それは本当にメニューに裏打ちされていないスタンドアロンのツールバー、をならそう、単に
menu.add(action);
上記と同じアクションを使用する場合は、もう少し作業がoutlined in a previous answerとして基本的に、関与していますこれは多くのボタンのために指定されたコンテキスト、サブクラスJToolBarの、アドオンを無効に(アクション)メソッドのための標準的な要件であり、ない場合
JToolBar bar = new JToolBar();
JButton toolBarButton = bar.add(action);
toolBarButton.getActionMap().put("myAction", action);
toolBarButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
(KeyStroke) action.getValue(Action.ACCELERATOR_KEY), "myAction");
:明示的に、ツールバーに追加したボタンに何かをキーバインドを追加することですそこにスーパーを呼び出した後:
public class JXToolBar extends JToolBar {
public JButton add(Action action) {
JButton button = super.add(action);
KeyStroke stroke = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
if (stroke != null) {
// do the input/actionMap config here
}
}
}
私はこの質問を閉じるために投票しました – mKorbel
咳...質問を終わらせるために投票しましたが...それは私が期待したほど簡単ではありません - 閉鎖を取り消すことはできないようです。 – kleopatra
約束したイメージはどこですか?私は要件 – kleopatra