這個是F10的問題,你可以將F10換成其他按鍵,因為F10是快捷鍵,那個final的問題是因為你所用的方法是個內(nèi)部類,必須用final的變量
目前成都創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、曲靖網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
操作系統(tǒng),有兩個層次,第一個層次是對組裝起電腦的各個硬件的驅(qū)動程序;第二個是建立在驅(qū)動程序上的各項應(yīng)用程序,比如桌面顯示、鍵盤監(jiān)聽后的處理程序等等。如果想要進行監(jiān)聽鍵盤,那么就需要獲取到所使用操作系統(tǒng)給出的api接口,以windows系統(tǒng)為例,是用c和c++進行編寫的,所以他們提供的api都是c和c++的api接口。于是用java的話就需要用到j(luò)ava的native方法,一個Native Method就是一個java調(diào)用非java代碼的接口。所以3個步驟:
1、引用java native方法。
2、研究windows api。
3、調(diào)用windows api中的鍵盤監(jiān)聽接口,完成程序。
哦喲,測試了好多次,終于找到原因咯,frame.addKeyListener(this); 有問題!
鍵盤事件監(jiān)聽器不能掛在frame上的,你只需要把這句話改為tf.addKeyListener(this); 就能執(zhí)行咯,幸苦了這么久,親要記得采納哦
package com;
import java.util.Scanner;
public class test {
/**
* @param args
*/
private Scanner san = new Scanner(System.in);
public String getInput() {
String input;
input = san.nextLine().trim();
return input;
}
public static void main(String[] args) {
test at = new test();
for (int i = 0; i 10; i++) {
System.out.print("請輸入: ");
String name = at.getInput();
System.out.println(name);
}
}
}
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_RIGHT)
by = by+5;
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
by = by-5;
}
});
這里這樣改就ok了,不過你這個程序還有好多問題呢。
public void paint(Graphics g){
g.drawImage(img2,0,0,this);
g.drawImage(img3,by,490,this);
g.drawImage(img,580,260,this);
repaint();
}
這里面還要加一個repaint();方法,要不看不出移動的,問題太多改不完,你問的問題我算是解決了,嘿嘿,給分吧,有什么問題可以hi我。
網(wǎng)站名稱:java偵測鍵盤代碼,java讀取鍵盤
分享網(wǎng)址:http://aaarwkj.com/article28/dssghjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、響應(yīng)式網(wǎng)站、網(wǎng)站營銷、品牌網(wǎng)站制作、虛擬主機、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)