我在为动态添加的按钮设置快捷方式时遇到了一些困难。按钮位于动态添加的面板上。我想为这些按钮添加键盘快捷键,如下所示:
ctrl+1 -> button1
ctrl+2 -> button2
etc.
按钮是通过算法添加的,所以我不知道会有多少个按钮(最小 0,最大 5)。我想用全局(在整个面板中工作)键盘快捷键来调用这些按钮。我想知道如何实现这一点,当我的按钮上的文本像这样动态制作时:
getNewAmountQueryButton(label)
这使得:
private JButton getNewAmountQueryButton(final Decimal label) {
JButton temp = new JButton(label.toString());
...
我尝试添加 keylistener 但它仅在我关注按钮时才有效:
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();
}
}
});
});
你知道我该怎么做吗?我想将监听器添加到顶级面板,但是当我model.setAmount(model.getAmount().add(label));
用来刷新一些 textField 时,由于缺少这个是不可能的label
参数,这是不可能的。
任何想法?提前致谢!