java键盘事件监听
packagecom.czp.view;importjava.awt.BorderLayout;importjava.awt.Component;importjava.a...
package com.czp.view;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JFrame{
private JButton jb1 = new JButton("");
Font font = new Font("微软雅黑", 3, 50);
public Game() {
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
System.out.println(454);
}
});
setLocationRelativeTo(null);
setSize(600, 150);
setDefaultCloseOperation(3);
setVisible(true);
setLayout(new GridLayout(1, 4, 20 ,20));
// add(jb1); 这句添加上去就键盘监听就没有用了 怎么回事啊
setResizable(false);
}
public static void main(String[] args) {
new Game();
}
} 展开
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JFrame{
private JButton jb1 = new JButton("");
Font font = new Font("微软雅黑", 3, 50);
public Game() {
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
System.out.println(454);
}
});
setLocationRelativeTo(null);
setSize(600, 150);
setDefaultCloseOperation(3);
setVisible(true);
setLayout(new GridLayout(1, 4, 20 ,20));
// add(jb1); 这句添加上去就键盘监听就没有用了 怎么回事啊
setResizable(false);
}
public static void main(String[] args) {
new Game();
}
} 展开
展开全部
原因是你的listener是加到JFrame, 但没有加到jb1, 加到JFrame的的listener是不会监听加到JFrame的components的! 当focus在某个component时, 只有那个component会监听到键盘!
你的程序运行时就会focus在jb1这个button上, 但这个button并未加监听! 你可以为每个要监听的component加listener, 例如:
KeyListener listener = new KeyAdapter(){...};
...
jb1.addKeyListener(listener);
jb2.addKeyListener(listener);
...
你的程序运行时就会focus在jb1这个button上, 但这个button并未加监听! 你可以为每个要监听的component加listener, 例如:
KeyListener listener = new KeyAdapter(){...};
...
jb1.addKeyListener(listener);
jb2.addKeyListener(listener);
...
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询