当前位置: 技术问答>java相关
100分求按钮(JButton)的快捷键类
来源: 互联网 发布时间:2015-09-27
本文导语: 我们知道只有JMenuItem有快捷键(如:Ctrl+N表示打开) 能不能够让JButton也有这个方法,具体使用什么接口来实现啊。我按照JMenuItem的实现接口来实现,现在只能够设置JButton的快捷键,但是却不生效。估计是要加什么侦...
我们知道只有JMenuItem有快捷键(如:Ctrl+N表示打开)
能不能够让JButton也有这个方法,具体使用什么接口来实现啊。我按照JMenuItem的实现接口来实现,现在只能够设置JButton的快捷键,但是却不生效。估计是要加什么侦听器。
特此请教实现的方法!!!
能不能够让JButton也有这个方法,具体使用什么接口来实现啊。我按照JMenuItem的实现接口来实现,现在只能够设置JButton的快捷键,但是却不生效。估计是要加什么侦听器。
特此请教实现的方法!!!
|
1、若是设置类似“Ctrl+某键”的快捷键方式,可以直接:
jButton.setMnemonic(KeyEvent.VK_ENTER);
这是一种较简单的,快捷键是按Alt+enter回车键。
这种设置不适合之处就是一定要加上一个Alt键才行
2、若是要设置单键为button的快捷键,则需扩展一个ActionListener,具体模式如下:比如设置jBOK按钮快捷键为Enter回车键,jBCancel按钮设置快捷键为取消Esc键,相关代码如下:
/*//设置快捷键
class SymListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if (obj == jBOK) {
jBOK_actionPerformed(e);
}
else if (obj == jBCancel) {
jBCancel_actionPerformed(e);
}
}
}
//*/
/*//
SymListener symListener = new SymListener();
jBOK.addActionListener(symListener);
jBCancel.addActionListener(symListener);
//设置快捷键
jBOK.registerKeyboardAction(symListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);
//确定按钮为回车键"ENTER"
jBCancel.registerKeyboardAction(symListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);
//取消按钮为退出键"Escape"
//*/
当然还有其它的方法,相关参照:
http://www.csdn.net/expert/topic/774/774090.xml?temp=.5046198
jButton.setMnemonic(KeyEvent.VK_ENTER);
这是一种较简单的,快捷键是按Alt+enter回车键。
这种设置不适合之处就是一定要加上一个Alt键才行
2、若是要设置单键为button的快捷键,则需扩展一个ActionListener,具体模式如下:比如设置jBOK按钮快捷键为Enter回车键,jBCancel按钮设置快捷键为取消Esc键,相关代码如下:
/*//设置快捷键
class SymListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if (obj == jBOK) {
jBOK_actionPerformed(e);
}
else if (obj == jBCancel) {
jBCancel_actionPerformed(e);
}
}
}
//*/
/*//
SymListener symListener = new SymListener();
jBOK.addActionListener(symListener);
jBCancel.addActionListener(symListener);
//设置快捷键
jBOK.registerKeyboardAction(symListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);
//确定按钮为回车键"ENTER"
jBCancel.registerKeyboardAction(symListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);
//取消按钮为退出键"Escape"
//*/
当然还有其它的方法,相关参照:
http://www.csdn.net/expert/topic/774/774090.xml?temp=.5046198