動的に追加されたボタンへのショートカットの設定に問題があります。ボタンは動的に追加されたパネルにあります。次のように、これらのボタンにキーボード ショートカットを追加します。
ctrl+1 -> button1
ctrl+2 -> button2
etc.
ボタンはアルゴリズムによって追加されるため、ボタンの数はわかりません (最小 0、最大 5)。これらのボタンをグローバル (パネル全体で動作する) キーボード ショートカットで呼び出したいと思います。ボタンのテキストが次のように動的に作成されている場合、これをどのように達成するのか疑問に思っています:
getNewAmountQueryButton(label)
これにより、次のようになります。
private JButton getNewAmountQueryButton(final Decimal label) {
JButton temp = new JButton(label.toString());
...
キーリスナーを追加しようとしましたが、ボタンにフォーカスがある場合にのみ機能します:
button.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(final KeyEvent e) {
@Override
public void run() {
if ((e.getKeyCode() == getKeyCode()) && ((e.getModifiers() & InputEvent.CTRL_MASK) != 0)) {
model.setAmount(model.getAmount().add(label));
field().selectAll();
refreshDisplay();
}
}
});
});
どうすればこれができるか知っていますか?最上位パネルにリスナーを追加したかったのですが、いくつかの textField を更新するために使用しているため、このパラメーターmodel.setAmount(model.getAmount().add(label));
がないため不可能です。label
何か案が?前もって感謝します!