導航:首頁 > 編程語言 > javakeyevent

javakeyevent

發布時間:2022-08-06 13:19:29

java keyevent不能用

不是不能用是你程序的問題,以後不要這樣講話,好像你發現java缺陷似的。你得調用裡面的相應變數才可以如:static int VK_ENTER 代表回車
在說了如果你想讓按鈕按下去後有所動作應該使用java.awt.event.KeyAdapter
裡面有如下方法:
void keyPressed(KeyEvent e)
按下某個鍵時調用此方法。
void keyReleased(KeyEvent e)
釋放某個鍵時調用此方法。
void keyTyped(KeyEvent e)
鍵入某個鍵時調用此方法。

② Java中KeyEvent中的getKeyText返回的是中文

KeyEvent e

char e.getKeyCode()
int e.getKeyChar()
這兩個方法的返回都非中文

③ JAVA中的鍵盤事件KeyEvent

因為你添加的面板上含有按鈕,第一個按鈕默認會獲得焦點,只有獲得焦點組建才會相應事件。因為Frame無法獲得焦點,所以就無法再響應事件了。如果把JButton改成JLabel,就不會有問題了。JLabel默認不會獲得焦點,焦點仍然在Frame上,所以還會響應事件。
採用樓上,或改為
class MessagePanel extends JPanel {
public MessagePanel() {
setLayout(new GridLayout(8, 1));
JButton b;
for (int i = 0; i < 8; i++) {
b = new JButton("沒用的按鈕");
b.setFocusable(false);
add(b);
}
}

④ JAVA事件處理中的KeyEvent問題

你沒有把KeyListener監聽加到JFrame中,在MovingBall類中的this.add(mp); 語句後面加上一句this.addKeyListener(mp);就行了。完整的程序如下:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;

public class MovingBall extends JFrame{

MyPanel mp=null;

public MovingBall(){
mp= new MyPanel();

this.add(mp);
this.addKeyListener(mp); //這里加了一句
this.setSize(400,300);
this.setTitle("Moving Ball");
this.setLocationRelativeTo(null);
this.setVisible(true);
}

public static void main(String[] args) {
MovingBall movingBall= new MovingBall();
}
}

class MyPanel extends JPanel implements KeyListener{
int x=10;
int y=10;

public void paint(Graphics g){
super.paint(g);
g.fillOval(x,y,10,10);
}

public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_DOWN){
y++;
}
else if(e.getKeyCode()==KeyEvent.VK_UP){
y--;
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
x++;
}
this.repaint();
}

public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

}

⑤ java的KeyEvent類中的VK_ESCAPE是什麼意思

KeyEvent類中的VK_ESCAPE是一個常量,對應該鍵盤上的Esc鍵。

java的按鍵事件由KeyEvent封裝起來,包含有:getKeyChar獲得對應鍵字元、getKeyCode獲得對應鍵的值等方法。

java的按鍵事件通過KeyListener介面處理。處理事件必須實現KeyPressed、KeyReleased、KeyTyped三個方法,然後可以在相應方法中去按鍵事件,如:

switch(keyEvent.getKeyCode()){//keyEvent為KeyEvent對象
case VK_ESCAPE:
//按下Esc鍵對應的處理
break;

case 其他常量:

//其他處理
break;

......

}

⑥ 關於java KeyEvent的代碼,哪裡錯了求指點。

String c = e.paramString();
switch(c){
String 為何拿來 Switch? 這是不合理的.
int keyCode = e.keyCode() 拿到的才是 按鍵, 才能用於 switch

⑦ 關於javaKeyEvent按鍵反應的。懂的前輩幫忙看下

你把keyPressed函數里所有的e.getKeyChar()函數改成e.getKeyCode()函數就行了.
因為e.getKeyChar()函數只對字元鍵起作用,對控制鍵不起作用.e.getKeyCode()函數既能識別控制鍵也能識別小寫狀態下的wsad按鍵.
完整的程序如下:
package Draw;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class test2 extends JFrame{
/**
* @param args
*/
dong d=null;
public test2(){
d=new dong();
d.addKeyListener(d);
this.addKeyListener(d);

this.add(d);
this.setSize(200,200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO 自動生成方法存根
test2 ts=new test2();
}
}
class dong extends JPanel implements KeyListener{
int x=10;
int y=10;
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.white);
g.fillRect(0, 0, 200,200);
g.setColor(Color.BLACK);
g.fillOval(x, y, 10,10);

}
//鍵被按下
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP||e.getKeyCode()==KeyEvent.VK_W){
System.out.print(e.getKeyCode());
y--;
repaint();
}
if(e.getKeyCode()==KeyEvent.VK_DOWN||e.getKeyCode()==KeyEvent.VK_S){
y++;
repaint();
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT||e.getKeyCode()==KeyEvent.VK_D){
x++;
repaint();
}
if(e.getKeyCode()==KeyEvent.VK_LEFT||e.getKeyCode()==KeyEvent.VK_A){
x--;
repaint();
}
}
public void keyReleased(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
}
}

閱讀全文

與javakeyevent相關的資料

熱點內容
現代鋼琴教程pdf 瀏覽:25
客戶端框架源碼 瀏覽:210
python自動辦公能幹嘛 瀏覽:873
程序員追愛 瀏覽:252
程序員邏輯故事 瀏覽:768
加密icsot23i2c 瀏覽:713
你們有什麼好的解壓軟體 瀏覽:607
常州空氣壓縮機廠家 瀏覽:241
安卓如何關閉app內彈出的更新提示 瀏覽:409
e4a寫的app怎麼裝蘋果手機 瀏覽:201
海立壓縮機海信系 瀏覽:210
社保如何在app上合並 瀏覽:220
小米加密照片後綴 瀏覽:236
我的世界網易手機怎麼創伺服器 瀏覽:978
載入單頁源碼 瀏覽:930
阿里雲伺服器seo 瀏覽:777
海洋斗什麼時候上線安卓 瀏覽:86
中行app如何查每日匯款限額 瀏覽:840
輸入伺服器sn是什麼意思 瀏覽:725
sha1演算法java 瀏覽:90