JButton saveButton=new JButton("保存");saveButton.addKeyListener(new mousedemo()); private class keydemo extends KeyAdapter { public void keyPressed(KeyEvent arg0) { // TODO 自动生成方法存根 int keytext=arg0.getKeyCode(); if(keytext==KeyEvent.VK_ENTER){ //保存代码自己写 } } }
///-----------------private void BtnEnterKeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode() == KeyEvent.VK_ENTER){
} }///----------------private void BtnEnterKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode() == KeyEvent.VK_ENTER){
}}//// 使用哪个获取呀?
没问题啊!怎么会没反应呢!private class keydemo extends KeyAdapter { public void keyPressed(KeyEvent arg0) { // TODO 自动生成方法存根 int keytext=arg0.getKeyCode(); if(keytext==KeyEvent.VK_ENTER){ System.out.println("click");//保存代码自己写 } } } 看看按回车之后再控制台能不能显示!
KeyPressed是键被按下,KeyReleased是键被弹起,这两个都是更底层一些的事件。 KeyTypede是指有字符被输入,比如按住shift,再按A键,如果当时Caps Lock不亮,就产生一个输入大写A的事件。public static final int KEY_PRESSED The "key pressed" event. This event is generated when a key is pushed downpublic static final int KEY_RELEASED The "key released" event. This event is generated when a key is let up.public static final int KEY_TYPED The "key typed" event. This event is generated when a character is entered. In the simplest case, it is produced by a single key press. Often, however, characters are produced by series of key presses, and the mapping from key pressed events to key typed events may be many-to-one or many-to-many.
private void BtnEnterKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode() == KeyEvent.VK_ENTER){ //这里的自己写保存方法就行,不知道你是怎么保存的就不给你谢了 }}
原理就是:这个组件捕捉到KeyStroke事件会去InputMap中以KeyStroke为键去查找对应的Object值,
然后拿找到的Object值作为键再去ActionMap中去找Action值。
public void keyTyped(KeyEvent e){
if(e.getKeyChar() == '\n') // 如果键入回车
{//在这里放你actionPerformed(){}里同样的东西!!
}
}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){}
}
e.getKeyCode()==KeyEvent.VK_ENTER;
大概就是这样,至于回车保存你自己实现吧
JButton saveButton=new JButton("保存");saveButton.addKeyListener(new mousedemo());
private class keydemo extends KeyAdapter {
public void keyPressed(KeyEvent arg0) {
// TODO 自动生成方法存根
int keytext=arg0.getKeyCode();
if(keytext==KeyEvent.VK_ENTER){
//保存代码自己写
}
}
}
///-----------------private void BtnEnterKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode() == KeyEvent.VK_ENTER){
}
}///----------------private void BtnEnterKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode() == KeyEvent.VK_ENTER){
}}//// 使用哪个获取呀?
public void keyPressed(KeyEvent arg0) {
// TODO 自动生成方法存根
int keytext=arg0.getKeyCode();
if(keytext==KeyEvent.VK_ENTER){
System.out.println("click");//保存代码自己写
}
}
}
看看按回车之后再控制台能不能显示!
KeyTypede是指有字符被输入,比如按住shift,再按A键,如果当时Caps Lock不亮,就产生一个输入大写A的事件。public static final int KEY_PRESSED
The "key pressed" event. This event is generated when a key is pushed downpublic static final int KEY_RELEASED
The "key released" event. This event is generated when a key is let up.public static final int KEY_TYPED
The "key typed" event. This event is generated when a character is entered. In the simplest case, it is produced by a single key press. Often, however, characters are produced by series of key presses, and the mapping from key pressed events to key typed events may be many-to-one or many-to-many.
private void BtnEnterKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode() == KeyEvent.VK_ENTER){
//这里的自己写保存方法就行,不知道你是怎么保存的就不给你谢了
}}
* 确定(保存)按钮触发的活动
* @param evt
*/ //这个是保存的事件,要用鼠标点击 private void BtnEnterActionPerformed(java.awt.event.ActionEvent evt) {
if (keyContext.getTexts().size() == 0) {
JOptionPane.showMessageDialog(jDialog, "Button label is null,please rename it!", "Warning", JOptionPane.WARNING_MESSAGE);
return;
}
if (this.addOrModify == 2) {
key.setContext(keyContext);
key.setKeyLength(keyContext.getTexts().size() * 6 + 2);
} else if (this.addOrModify == 1) { //新增 Key k = new Key();
k.setParent(page);
k.setKeyNo((page.getPageNo() - 1) * 12 + 47 + this.location);
k.setContext(keyContext);
k.setKeyLength(keyContext.getTexts().size() * 6 + 2);
putKeyIntoPage(page, k);
}
jDialog.setVisible(false);
jDialog.removeAll();
jDialog.getParent().remove(jDialog);
System.out.println("======");
} //-----------------private void BtnEnterKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode() == KeyEvent.VK_ENTER){
System.out.println(" 按回车键!");
}
}// 我用DeBug模式调,按回车时没用调用这个事件? 哪里写的不对吗?