我创建了我的JMenu,里面有特定的类别和项目。我想为每个项目添加for()快捷方式取决于项目数量,但我不知道如何。
对于lopp我用这个:
item.setAccelerator(KeyStroke.getKeyStroke(
java.awt.event.KeyEvent.VK_x,
java.awt.Event.CTRL_MASK));
在' x'我想使用0-9之间的数字,如果我有超过10的项目,那么将VK_x更改为VK_NUMPADx。
有可能是一种简单的方法吗?
答案 0 :(得分:0)
您可以这样做:
int[] events = { KeyEvent.VK_0, KeyEvent.VK_1 ... KeyEvent.VK_9, KeyEvent.VK_NUMPAD0 ... KeyEvent.VK_NUMPAD9 };
JMenuItem[] items = {item1,item2 ... item20};
for(int i = 0;i < events.length && i < items.length;i++){
items[i].setAccelerator(KeyStroke.getKeyStroke(
events[i],
Event.CTRL_MASK));
}
在此示例中,item1
将与KeyEvent.VK_0
,item2
与KeyEvent.VK_1
相关联,依此类推。
答案 1 :(得分:0)
KeyEvent.VK_0到KeyEvent.VK_9表示为十进制数48-57,KeyEvent.VK_NUMPAD0表示为KeyEvent.VK_NUMPAD9为106-115。
int keyCode;
for (int i = 0; i < menu.getItemCount(); i++) {
JMenuItem menuItem = menu.getItem(i);
if (i < 10) {
keyCode = 48 + i;
} else {
keyCode = 106 + i % 10;
}
menuItem.setAccelerator(KeyStroke.getKeyStroke(
keyCode,
java.awt.Event.CTRL_MASK));
}
你也可以记住这个想法。