如果可以,KeyBindings有什么意义:
// Imports
public void Test {
JButton button1;
JButton button2;
JButton button3;
...
Test() {
button1 = new JButton();
button1.addKeyListener(this);
button2 = new JButton();
button2.addKeyListener(this);
button3 = new JButton();
button3.addKeyListener(this);
...
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
Object src = e.getSource();
if (src == button1) {
...
}
else if (src == button2) {
...
}
else if (src == button3) {
...
}
...
}
}
假设我有十个按钮。然后,如果使用KeyBindings,则必须为每个按钮进行单独的键绑定。我展示的例子不是更有效吗?为什么不?
最佳答案
如果您仅计算CPU周期,是的(可以说)效率更高(经过仔细考虑,我什至不确定)。但是有一些反对的地方:
因此,对于局部性很强的问题,您的方法可能就足够了,而对于更大范围的视图,则无法成立。
您可以在第三段here中找到有关此问题的一些相似和其他注释。
最后,将KeyListener放在JButton上有点奇怪。通常,我们注册一个ActionListener。