JFrame如何添加键盘消息

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:29:35
我做了一个计算器的程序,点击的好了,按钮和JTextField都是在JFrame里添加的,想添加键盘消息,但不知道怎么添加。
我试过继承KEyListener接口,不好使。
请做过类似的程序的人指教,有代码的发到mazheng19891019@163.com
不胜感激。

你自己用了是不好使,说明你会做,可能事件捕获不到。
按我方法试试,应该自己能做出来的。
在现在的JDK中,键盘事件只有具有焦点的组件才能捕获。因此,你应该把你所有的键盘事件都绑到同一个组件上。而且要保持此组件有焦点。
计算器上有很多按钮,一点这些按钮你捕获事件的组件就失去焦点了,解决这个问题的方法是你在这些按钮的的mouseReleased事件中,加上一句指定你捕获器组件强制获取焦点。这样就能保持捕获器永远有焦点了。
你的捕获器.requestFocusInWindow()

import java.awt.Color;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class KeyFrame extends JFrame {

private static final long serialVersionUID = 1L;
private JLabel lb = new JLabel();

public KeyFrame() {
this.setTitle("Press any key you want");
this.setBounds(400, 400, 320, 50);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(lb);
// u can override keyReleased(KeyEvent e), keyTyped(KeyEvent e) etc..
this.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent e) {
int keyCode = e