簡單寫一個java Gui鍵盤監聽事件,實現的效果就是按下鍵盤控制檯輸出你按下的鍵。比如:按下A控制檯就輸出A
效果如圖:
以下把實現的效果分爲幾個步驟:
1.新建一個窗體類繼承窗體;
2.給這個窗體添加addKeyListener(new MyKeyListener()),方法裏面實例化監聽鍵盤類;
3.新建一個鍵盤類繼承KeyAdapter;
4.類裏面的方法名必須是keyPressed(KeyEvent e);//KeyEvent就是jre對你按下/釋放鍵盤按鍵的包裝
5.實例化窗體類。
下面貼出上圖實現的代碼:
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
/**
*
*/
/**
* @author Administrator
*
*/
//窗體類
public class MyFrame extends JFrame {
/**
* @param args
*/
char charA;
public MyFrame(){
this.setSize(500,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("my jframe");
this.setVisible(true);
this.addKeyListener(new MyKeyListener());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
}
//監聽鍵盤類
class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e){
char charA=e.getKeyChar();
System.out.println("你按了《"+charA+"》鍵");
}
}
另外一種寫法就是在給窗體添加監聽的時候直接 實例方法,不用再寫一個類。建議用這個寫法。代碼如下:
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
/**
*
*/
/**
* @author Administrator
*
*/
//窗體類
public class MyFrame extends JFrame {
/**
* @param args
*/
char charA;
public MyFrame(){
this.setSize(500,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("my jframe");
this.setVisible(true);
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
char charA=e.getKeyChar();
System.out.println("你按了《"+charA+"》鍵");
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
}