可运行下,看结果,对于一些特殊的键按下等,要进行转换。请对照键码表,进行转换。本程序只转换了"Shift","Ctrl","Alt"三个特殊键.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class MyFrame2 extends JFrame{
private int FIELDSIZE = 40;
JTextArea jt = null;
public MyFrame2(){
setTitle("铵键监听");
setName("test");
setBounds(400, 200, 400, 400);
JPanel jp = new JPanel();
jt = new JTextArea(18,30);
jt.setSize(350, 380);
JButton jb = new JButton("清屏");
jt.setEditable(false);
jp.add(jt);
JScrollPane js = new JScrollPane(jp);
js.setAutoscrolls(true);
add(js,BorderLayout.CENTER);
add(jb,BorderLayout.SOUTH);
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
jt.setText("");
}
});
jt.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
String chart = e.getKeyChar() "";
int keycode = e.getKeyCode();
if(keycode==16){
chart = "Shift";
}else if(keycode==17){chart="Ctrl";}
else if(keycode==18){chart="Alt";}
jt.append("键盘\"" chart "\"按下\n");
}
public void keyReleased(KeyEvent e) {
String chart = e.getKeyChar() "";
int keycode = e.getKeyCode();//键盘按键对照码,要想看特殊键,可以对照下写
if(keycode==16){
chart = "Shift";
}else if(keycode==17){chart="Ctrl";}
else if(keycode==18){chart="Alt";}
jt.append("键盘\"" chart "\"松开\n");
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame2();
}
}
同问,楼主现在有答案吗