Java中的鍵盤監聽事件KeyListener
Java中的鍵盤監聽事件KeyListener
轉載請註明出處:
http://blog.csdn.net/u012301841/article/details/47284917
最近在鞏固java基礎,發現java的事件機制設計的很好,一個事件源發出事件的訊息,只要其他地方註冊監聽了這個事件源,就可以得到此事件源發出的訊息,從而做響應的改變。
後面去深入瞭解一下,果然為觀察者模式。官方說法為採取“委派事件模型”,即事件源為被觀察者,監聽器為觀察者,一個事件源可以有N個觀察者。
本意是要說一下鍵盤監聽事件的,但是java所有的事件機制都一樣,所以只要瞭解了觀察者模式,這個也很容易瞭解的
class MyPanel1 extends JPanel implements KeyListener{
int x = 10;
int y = 10;
public MyPanel1() {
super();
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.red);
g.fillOval(x, y, 20, 20);
System.out.println("paint()");
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
if ( e.getKeyCode()==KeyEvent.VK_DOWN ){
y = y+10;
} else if (e.getKeyCode()==KeyEvent.VK_UP){
y--;
} else if (e.getKeyCode()==KeyEvent.VK_RIGHT){
x = x+10;
} else if (e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
} else {
}
this.repaint();
}
@Override
public void keyReleased(KeyEvent e) {
}
}
MyPanel1 實現了KeyListener這個介面,keyPressed()這個方法是當你按下鍵盤的某個鍵鬆開後就會被呼叫,根據keyCode()找到所對應的那個鍵,在執行操作。
public class Demo9_2 extends JFrame{
private MyPanel1 myPanle;
public static void main(String[] args) {
Demo9_2 demo9_2 = new Demo9_2();
}
public Demo9_2(){
myPanle = new MyPanel1();
this.add(myPanle);
this.addKeyListener(myPanle);
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
this.addKeyListener(myPanle) 就是註冊事件,即為事件源分發事件,所以只要鍵盤有所操作,就會呼叫KeyListener實現類裡面相應的方法。
PS:個人感覺,在以後的程式設計中遇到和需要自己編寫觀察者模式的時候還真不少,比如我們的多執行緒下載,多個介面需要知道進度條的狀態,就適合用這種模式來處理。
相關文章
- 監聽鍵盤事件事件
- 鍵盤監聽事件--向左事件
- javascript監聽鍵盤事件JavaScript事件
- vue的監聽鍵盤事件的快捷方法Vue事件
- java鍵盤監聽之視窗監聽的實現Java
- java全域性滑鼠鍵盤監聽Java
- js監聽鍵盤事件程式碼例項例項JS事件
- Laravel 中的事件監聽Laravel事件
- python pynput監聽鍵盤Python
- java 自定義監聽事件Java事件
- js中的鍵盤事件JS事件
- java監聽組合鍵Java
- java 監聽 redis 過期事件JavaRedis事件
- Android 監聽鍵盤彈出收起Android
- 事件監聽事件
- 關於Servlet中的事件監聽 薦Servlet事件
- Android 監聽鍵盤狀態變化,並獲取鍵盤高度Android
- java springboot監聽事件和處理事件JavaSpring Boot事件
- web app 中物理返回鍵的監聽WebAPP
- Flutter事件監聽Flutter事件
- jQuery事件監聽jQuery事件
- 監聽滑鼠事件事件
- JavaScript 事件監聽JavaScript事件
- js 監聽事件JS事件
- android開發中,監聽軟鍵盤的狀態(收起或者開啟)Android
- Java GUI之事件監聽與處理JavaGUI事件
- 事件和事件監聽器事件
- h5監聽手機鍵盤彈起H5
- Android 監聽鍵盤彈起及隱藏Android
- Android監聽軟鍵盤收起與彈出Android
- js中獲取鍵盤事件JS事件
- passive 的事件監聽器事件
- 鍵盤事件事件
- Java中的鍵盤錄入Java
- vue之監聽事件Vue事件
- 初識事件監聽事件
- JS事件監聽器JS事件
- tkinter中滑鼠與鍵盤事件(十五)事件