我正在用Swing学习Java。我的setAccelerator菜单有问题。
我的代码:
closeItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_W, ActionEvent.CTRL_MASK));
closeOtherItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_W, ActionEvent.CTRL_MASK&ActionEvent.SHIFT_MASK));
我想当我按Ctrl + W时,我的JTabbedPane将关闭selectedTab,而当我按Ctrl + Shift + W时,我的JtabbedPane将关闭所有忽略的selectedTab。但是,仅检测到Ctrl + W动作,尽管当我单击closeOtherItem时,我的程序将正常运行。
最佳答案
尝试修饰符而不是进行处理,而使用InputEvent.CTRL_DOWN_MASK
和InputEvent.SHIFT_DOWN_MASK
代替...
KeyStroke.getKeyStroke(KeyEvent.VK_W,
InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)