import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class KeyPress extends JFrame implements KeyListener
{
JLabel jLabel1=new JLabel("虚拟键码:");
JLabel jLabel2=new JLabel("键名称:");
JLabel jLabel3=new JLabel("字符:");
JFrame f=new JFrame("KeyPress");
int k=0;
char c;
public void init()
{
f.setSize(400,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout());
Font font1=new Font("仿宋_GB2321",Font.ITALIC,20);
jLabel1.setFont(font1);
jLabel2.setFont(font1);
jLabel3.setFont(font1);
jLabel1.addKeyListener(new KeyPress());
jLabel2.addKeyListener(new KeyPress());
jLabel3.addKeyListener(new KeyPress());
f.getContentPane().add(jLabel1);
f.getContentPane().add(jLabel2);
f.getContentPane().add(jLabel3);
f.show();
}
public void keyPressed(KeyEvent e)
{
k=e.getKeyCode();
c=e.getKeyChar();
Integer k1=new Integer(k);
String s=k1.toString(k);
jLabel1.setText("虚拟键码"+s);
jLabel2.setText("键名称"+c);
System.out.println(s);
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
public static void main(String args[])
{
KeyPress keypress=new KeyPress();
keypress.init();
}
}程序在上面,为什么按下任意键时没有反应,请大虾帮忙
import java.awt.event.*;
import java.awt.*;
class KeyPress extends JFrame implements KeyListener
{
JLabel jLabel1=new JLabel("虚拟键码:");
JLabel jLabel2=new JLabel("键名称:");
JLabel jLabel3=new JLabel("字符:");
JFrame f=new JFrame("KeyPress");
int k=0;
char c;
public void init()
{
f.setSize(400,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout());
Font font1=new Font("仿宋_GB2321",Font.ITALIC,20);
jLabel1.setFont(font1);
jLabel2.setFont(font1);
jLabel3.setFont(font1);
jLabel1.addKeyListener(new KeyPress());
jLabel2.addKeyListener(new KeyPress());
jLabel3.addKeyListener(new KeyPress());
f.getContentPane().add(jLabel1);
f.getContentPane().add(jLabel2);
f.getContentPane().add(jLabel3);
f.show();
}
public void keyPressed(KeyEvent e)
{
k=e.getKeyCode();
c=e.getKeyChar();
Integer k1=new Integer(k);
String s=k1.toString(k);
jLabel1.setText("虚拟键码"+s);
jLabel2.setText("键名称"+c);
System.out.println(s);
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
public static void main(String args[])
{
KeyPress keypress=new KeyPress();
keypress.init();
}
}程序在上面,为什么按下任意键时没有反应,请大虾帮忙
jLabel2.addKeyListener(new KeyPress());
jLabel3.addKeyListener(new KeyPress());
???你是让JLabel 来响应按键事件吗?而且还new KeyPress();
不行哦。
import java.awt.event.*;
import java.awt.*;
class KeyPress extends JFrame implements KeyListener
{
JLabel jLabel1=new JLabel("虚拟键码:");
JLabel jLabel2=new JLabel("键名称:");
JLabel jLabel3=new JLabel("字符:");
JFrame f=new JFrame("KeyPress");
int k=0;
char c;
public void init()
{
f.setSize(400,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout());
Font font1=new Font("仿宋_GB2321",Font.ITALIC,20);
jLabel1.setFont(font1);
jLabel2.setFont(font1);
jLabel3.setFont(font1);
f.getContentPane().add(jLabel1);
f.getContentPane().add(jLabel2);
f.getContentPane().add(jLabel3);
JTextField tf = new JTextField("!!!");
f.getContentPane().add(tf);
tf.addKeyListener(this);
f.show();
setFocusable(true);
}
public void keyPressed(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
k=e.getKeyCode();
c=e.getKeyChar();
Integer k1=new Integer(k);
String s=k1.toString(k);
jLabel1.setText("虚拟键码"+s);
jLabel2.setText("键名称"+c);
System.out.println(s);
}
public static void main(String args[])
{
KeyPress keypress=new KeyPress();
keypress.init();
}
}
JLabel是不能响应键盘事件的