当前位置: 技术问答>java相关
低级问题,请问如何捕获JEditorPane上的事件
来源: 互联网 发布时间:2015-04-24
本文导语: 我想当用户在JeditorPane上按下Ctrl + Enter间(或其他键) 时执行我自己编写的一个函数, 请问怎么实现? 好象是很低级的问题,我是newbie请不要见笑 最好能给我个小例子 Thanks. | 首先引入包...
我想当用户在JeditorPane上按下Ctrl + Enter间(或其他键)
时执行我自己编写的一个函数,
请问怎么实现?
好象是很低级的问题,我是newbie请不要见笑
最好能给我个小例子
Thanks.
时执行我自己编写的一个函数,
请问怎么实现?
好象是很低级的问题,我是newbie请不要见笑
最好能给我个小例子
Thanks.
|
首先引入包
import javax.swing.event.*;
然后定义一个
KeyStroke stroke1 = KeyStroke.getKeyStroke (KeyEvent.VK_ENTER,ActionEvent.CTRL_MASK,true);//创建一个KeyStroke类
最后一个参数的意思是是否在Keyrelease时触发此事件
JEditorPane jEditorPane1 = new JEditorPane();
jEditorPane1.registerKeyboardAction(new ActionListener(){
//要执行的方法
public void actionPerformed(ActionEvent e){
System.out.println("OK");
}
},stroke1,JComponent.WHEN_IN_FOCUSED_WINDOW);
}
registerKeyboardAction方法的参数意思是这样的
1.ActionListener对象,可以定义你要执行的方法
2.KeyStroke 对象,定义触发事件的条件
3.何时按Ctrl+Enter时发生此事件,比如
JComponent.WHEN_IN_FOCUSED_WINDOW
JComponent.WHEN_FOCUSED等
import javax.swing.event.*;
然后定义一个
KeyStroke stroke1 = KeyStroke.getKeyStroke (KeyEvent.VK_ENTER,ActionEvent.CTRL_MASK,true);//创建一个KeyStroke类
最后一个参数的意思是是否在Keyrelease时触发此事件
JEditorPane jEditorPane1 = new JEditorPane();
jEditorPane1.registerKeyboardAction(new ActionListener(){
//要执行的方法
public void actionPerformed(ActionEvent e){
System.out.println("OK");
}
},stroke1,JComponent.WHEN_IN_FOCUSED_WINDOW);
}
registerKeyboardAction方法的参数意思是这样的
1.ActionListener对象,可以定义你要执行的方法
2.KeyStroke 对象,定义触发事件的条件
3.何时按Ctrl+Enter时发生此事件,比如
JComponent.WHEN_IN_FOCUSED_WINDOW
JComponent.WHEN_FOCUSED等