问题:
在程序设计的时候,总会遇到这样的问题
需要在JTextField文本框框中添加回车响应
即:键盘按下回车键,等同于鼠标单击按下一个Button按钮,并进行事件操作
代码:
JFrame frame = new JFrame();
frame.getRootPane().setDefaultButton(button);
//button 是回车键需要响应的那个按钮事件
//button已经添加了时间才会有响应
//效果等同于按下回车键==点击了button按钮
后记:
这个方法对于登陆窗口来说,挺实用的
如果针对主窗体设计来说,就感觉有点捉襟见肘了,因为主窗体很可能会分开很多的类来描述编写,也可能会有面板的切换,在主窗体初始的时候,这个方法是可行的,可是切换了面板之后,就会发现会失去对Enter回车键的响应了,我还未找到原因
PS:一点小想法,大牛勿打击
网上也很多人说试过了添加KeyListener的方法,可是行不通,我也正在尝试使用,发现按下Enter回车键之后,JTextField的getText()方法返回的是空字符串,应该是默认回车清空了JTextField中的内容的,继续尝试ing
解决方法(已解决):
text.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
value = text.getText();
// System.out.println("Enter " + value);
FindAction.getAction(value);
// JTextField text;String value;都在之前定义好了
// FindAction.getAction()方法,其中FindAction实现的ActionListener接口
// getAction()方法是从actionPerformed(ActionEvent e)中抽象出来的
}
// System.out.println("Text " + value);
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
});