jButton如何响应键盘事件(Enter键)

anhy 2004-12-21 09:11:30
既当我按下键盘Enter键时,就相当于鼠标按下该jButton一样的,我如果使用KeyEvent的话,我只能做到按下Alt+Enter才会响应。
请问如何达到我想要的目的:按下键盘Enter键时,就相当于鼠标按下该jButton一样
...全文
948 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
YG200233 2004-12-21
  • 打赏
  • 举报
回复
学习,帮你UP
anhy 2004-12-21
  • 打赏
  • 举报
回复
或者说当我按下Enter键时,jButton如何获得焦点?
anhy 2004-12-21
  • 打赏
  • 举报
回复
谢谢。
但是按照上面的方法,我只能实现当焦点在jButton1上我按Enter才响应。
我想实现的是不管当时界面上的焦点在哪里,当我按Enter键时,都会响应jButton的事件。
还有我目前的程序是
————————————————————————————————
void jButton1_actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(this,"hellworl") ;
}

void jButton1_keyPressedKeyEvent e) {
if ( e.getKeyCode() == KeyEvent.VK_ENTER ){
JOptionPane.showMessageDialog(this,"hellworl") ;

}
}
————————————————————————————
如果我想在jButton1_keyTyped(KeyEvent e)直接调用jButton1_actionPerformed(ActionEvent e) 如何实现?

谢谢
frame501 2004-12-21
  • 打赏
  • 举报
回复
先让JButton获得焦点,

然后再判断键盘事件是否是回车,

如果是就让它执行和点击JButton相同的事件处理
lxleaves 2004-12-21
  • 打赏
  • 举报
回复
让JButton获得焦点
anhy 2004-12-21
  • 打赏
  • 举报
回复
请问这个和我使用jButton1.setMnemonic(KeyEvent.VK_ENTER);有什么不同?
3q
sukewin2008 2004-12-21
  • 打赏
  • 举报
回复
我觉得这个问题应该这样,你可以在其它任何控件上加入一个回车事件监听(当然是有必要的,比如一个TextField用于输入,在这里加个事件监听,程序执行时输入完成时打回车就行了)!!就相当于点按钮!!!

这只是个人观点,不知还有没有其它好办法,我只是个菜鸟!!!!

kaymo 2004-12-21
  • 打赏
  • 举报
回复
void jTxt_1_keyPressed( KeyEvent e ) {
if ( e.getKeyCode() == KeyEvent.VK_ENTER ){
//to do
}
}
speedingman 2004-12-21
  • 打赏
  • 举报
回复
帮你up
anhy 2004-12-21
  • 打赏
  • 举报
回复
如何在主界面上注册键盘事件监听器呢?
谢谢
Mohooo 2004-12-21
  • 打赏
  • 举报
回复
上面的应该可行

我觉得也可以在主界面上注册键盘事件监听器 判断是否为 回车键 如果是 调用按下按钮响应时间
lxleaves 2004-12-21
  • 打赏
  • 举报
回复
void jButton1_actionPerformed(ActionEvent e) {
fun();
}

void jButton1_keyPressedKeyEvent e) {
if ( e.getKeyCode() == KeyEvent.VK_ENTER ){
fun();

}
}
void fun(){
JOptionPane.showMessageDialog(this,"hellworl") ;
}
sep11 2004-12-21
  • 打赏
  • 举报
回复
我也帮你UP
登陆的代码如下 package denglu; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.plaf.basic.BasicButtonUI; import com.swtdesigner.SwingResourceManager; public class DengLu extends JFrame{ private JPasswordField pass; private static JTextField name; public void DengLu() { this.setTitle("登入窗口"); //设置登入窗口的属性参数 getContentPane().setLayout(null); setSize(453, 317); final JLabel label = new JLabel(); label.setHorizontalAlignment(SwingConstants.CENTER); label.setForeground(new Color(128, 128, 0)); label.setFont(new Font("华文彩云", Font.BOLD, 48)); label.setText("学生管理系统"); label.setBounds(0, 0, 447, 77); getContentPane().add(label); final JLabel label_1 = new JLabel(); label_1.setForeground(new Color(128, 128, 0)); label_1.setFont(new Font("", Font.BOLD, 22)); label_1.setText("用 户 名:"); label_1.setBounds(56, 101, 122, 32); getContentPane().add(label_1); final JLabel label_1_1 = new JLabel(); label_1_1.setForeground(new Color(255, 255, 255)); label_1_1.setFont(new Font("", Font.BOLD, 22)); label_1_1.setText("密 码:"); label_1_1.setBounds(56, 154, 122, 32); getContentPane().add(label_1_1); name = new JTextField();//用户名输入框 name.setBounds(205, 105, 155, 32); getContentPane().add(name); pass = new JPasswordField();//密码输入框 pass.setBounds(205, 158, 155, 32); pass.addKeyListener(new Key());//添加盘监听 getContentPane().add(pass); final JButton button_1 = new JButton(); button_1.setForeground(new Color(255, 255, 255)); //设置按钮的事件处理 button_1.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { /*String s

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧