下面是我写的一个对键盘的监听程序,程序本身应该是没有错的。
有的时候我测试的时候没有错误,正常的显示(按↑的时候控制台显示up,按↓的时候显示down)
可有的时候测试的时候却没有反应,这是什么原因?
而且现在发代码的时候测试,就失灵了。键盘监听未启作用。这是为什么?
package com.briup.test08;import java.awt.Container;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;import javax.swing.JButton;
import javax.swing.JFrame;import javax.swing.JPanel;public class D extends JPanel{
private JFrame frame;
private Container contentPane;
private JButton button;
public D(){
frame=new JFrame();
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane=frame.getContentPane();
frame.setVisible(true);
init();
}
private void init() {
// TODO Auto-generated method stub
contentPane.setLayout(null);
button=new JButton("按钮");
button.setBounds(50, 50, 80, 30);
contentPane.add(button);
frame.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
System.out.println("实现监听");
if(e.getKeyCode()==e.VK_UP){
System.out.println("up");
}
if(e.getKeyCode()==e.VK_DOWN){
System.out.println("down");
}
}
});
}
public static void main(String[] args) {
new D();
}
}
有的时候我测试的时候没有错误,正常的显示(按↑的时候控制台显示up,按↓的时候显示down)
可有的时候测试的时候却没有反应,这是什么原因?
而且现在发代码的时候测试,就失灵了。键盘监听未启作用。这是为什么?
package com.briup.test08;import java.awt.Container;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;import javax.swing.JButton;
import javax.swing.JFrame;import javax.swing.JPanel;public class D extends JPanel{
private JFrame frame;
private Container contentPane;
private JButton button;
public D(){
frame=new JFrame();
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane=frame.getContentPane();
frame.setVisible(true);
init();
}
private void init() {
// TODO Auto-generated method stub
contentPane.setLayout(null);
button=new JButton("按钮");
button.setBounds(50, 50, 80, 30);
contentPane.add(button);
frame.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
System.out.println("实现监听");
if(e.getKeyCode()==e.VK_UP){
System.out.println("up");
}
if(e.getKeyCode()==e.VK_DOWN){
System.out.println("down");
}
}
});
}
public static void main(String[] args) {
new D();
}
}
import java.awt.Container;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class D extends JPanel{
private static final long serialVersionUID = 453890560369815259L;
private JFrame frame;
private Container contentPane;
private JButton button;
public D(){
frame=new JFrame();
contentPane=frame.getContentPane();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
init();
}
private void init(){
contentPane.setLayout(null);
button=new JButton("按钮");
button.setBounds(50, 50, 80, 30);
contentPane.add(button);
frame.addKeyListener(new KeyListener(){
@Override
public void keyPressed(KeyEvent e) {
int keyCode=e.getKeyCode();
if(keyCode==KeyEvent.VK_UP){
System.out.println("up");
}else if(keyCode==KeyEvent.VK_DOWN){
System.out.println("down");
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
});
frame.addFocusListener(new FocusListener(){
@Override
public void focusGained(FocusEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
frame.requestFocus();
}
});
frame.requestFocus();
}
public static void main(String[] args) {
new D();
}
}