鍵盤事件java
Ⅰ java如何全局監聽鍵盤事件
java提供了兩個事件偵聽介面用來管理滑鼠移動和鍵盤動作,分別是MouseMotionListener和KeyListener,可以用它們來捕捉滑鼠和鍵盤,這兩個偵聽器都有很大的限制:滑鼠監聽只有在滑鼠位於Java程序所在的窗口范圍之內才能有效,而鍵盤監聽限制更嚴格,僅當Java程序成為當前的活動窗口時才有效。很顯然,單純用Java來實現全屏幕、所有程序滑鼠和鍵盤的話動是不行的。
Ⅱ JAVA 鍵盤事件觸發問題
你沒有API嗎?下面是java API對KeyEvent的解釋: getKeyChar 方法總是返回有效的 Unicode 字元或 CHAR_UNDEFINED。KEY_TYPED 事件報告字元輸入:KEY_PRESSED 和 KEY_RELEASED 事件不必與字元輸入關聯。因此, 可以保證 getKeyChar 方法的結果只對 KEY_TYPED 事件有意義。 對於按下鍵和釋放鍵事件,getKeyCode 方法返回該事件的 keyCode。對於鍵入鍵事件,getKeyCode 方法總是返回 VK_UNDEFINED。 「按下鍵」和「釋放鍵」事件 是低級別事件,依賴於平台和鍵盤布局。只要按下或釋放鍵就生成這些事件,它們是發現不生成字元輸入的鍵(如動作鍵、修改鍵等等)的惟一方式。通過 getKeyCode 方法可指出按下或釋放的鍵,該方法返回一個虛擬鍵碼。 虛擬鍵碼 用於報告按下了鍵盤上的哪個鍵,而不是一次或多次鍵擊組合生成的字元(如 "A" 是由 shift + "a" 生成的)。 例如,按下 Shift 鍵會生成 keyCode 為 VK_SHIFT 的 KEY_PRESSED 事件,而按下 'a' 鍵將生成 keyCode 為 VK_A 的 KEY_PRESSED 事件。釋放 'a' 鍵後,會激發 keyCode 為 VK_A 的 KEY_RELEASED 事件。另外,還會生成一個 keyChar 值為 'A' 的 KEY_TYPED 事件。 按下和釋放鍵盤上的鍵會導致(依次)生成以下鍵事件: KEY_PRESSED KEY_TYPED(只在可生成有效 Unicode 字元時產生。) 但在某些情況下(例如,在激活自動重復或輸入方法時),該順序可能會有所不同(並且與平台有關)。
Ⅲ java中如何處理鍵盤事件
添加鍵盤監聽事件
如:
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
int key = e.getKeyCode();//得到鍵盤輸入的值
if(key==KeyEvent.VK_Q){//如果鍵盤輸入的是Q
System.exit(0);//強行關閉當前進程
}
Ⅳ JAVA鍵盤事件
//改了很多,方法有點不同
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainPanel extends JFrame
{
ImageIcon image;
int x = 100, y = 0;
int moveY = 10;
JLabel jp;
public MainPanel()
{
setPreferredSize(new Dimension(300, 300));
setSize(300,300);
image = new ImageIcon("src/abc.gif");
jp=new JLabel(image);
getContentPane().add(jp);
jp.setBounds(50, 50, 90, 90);
addKeyListener(new K());
setVisible(true);
}
private class K implements KeyListener
{
public void keyPressed(KeyEvent event)
{
if(event.getKeyCode()==KeyEvent.VK_UP)
{
x = 1;
jp.setBounds(100, 100, 90, 90);
}
else if(event.getKeyCode()==KeyEvent.VK_DOWN)
{
x = -1;
jp.setBounds(0, 0, 90, 90);
}
}
public void keyTyped(KeyEvent event)
{
}
public void keyReleased(KeyEvent event)
{
}
}
public static void main(String[] args)
{
MainPanel m=new MainPanel();
m.pack();
}
}
Ⅳ java鍵盤事件問題
這個問題出在你的條件上,字元串的比較你要仔細了,在字元串與字元串的比較中,」==「是比較是不是同一個對象,TA1.getText()
==
"簡單工廠",這樣當然不是一個對象,你要用equals()來比較它們的值才合適,因為兩個條件都不符合,所以只能跳到else里邊。
Ⅵ java中的鍵盤事件
請問你的鍵盤時間事某個特定按鈕還是要監聽鍵盤按下的鍵呢~?我都給你列在下面吧!如果事特定的按鈕我給你個例子!其實用的就是一句話!JFrame.getRootPane.setDefaultButton(new JButton()) ;就可以啦!意思是 取跟面板然後設置默認按鈕就可以了! 如果你事要監聽單個的鍵盤按鈕的話就這樣~~~~例子如下!:你看懂這個代碼就明白了!package IO;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class KeyEventDemo extends JFrame implements ActionListener, KeyListener {
JTextArea txt1;
JButton btnOK;
JPanel pnlMain;
public KeyEventDemo() {
pnlMain = new JPanel();
setContentPane(pnlMain);
txt1 = new JTextArea();
btnOK = new JButton("確認");
txt1.addKeyListener(this); //應該是在 TextField 里添加鍵盤監聽事件
btnOK.addActionListener(this);//在按鈕上添加事件監聽
pnlMain.setLayout(new BorderLayout());//添加布局器
pnlMain.add(txt1,BorderLayout.NORTH); //TextField 布局在上方
pnlMain.add(btnOK,BorderLayout.SOUTH); //Button 布局在下方
setTitle("好啊");
setSize(300, 200);
setVisible(true);//viersible() 函數應該放在最後
setDefaultCloseOperation(EXIT_ON_CLOSE);
} public void keyTyped(KeyEvent e) { //6
String c = e.paramString();
if (c == "o") {
System.out.println("快捷鍵 " + e.getKeyChar() + " 按下" );
txt1.setText("收到,呵呵");
}else{
System.out.println("普通鍵 " + e.getKeyChar() + " 按下" );
}
}
public void actionPerformed(ActionEvent event){
System.out.println("按鈕按下");
} public void keyPressed(KeyEvent e) {} //函數要和介面 KeyListener 中定義的一摸一樣 public void keyReleased(KeyEvent e) {} //函數要和介面 KeyListener 中定義的一摸一樣 public static void main(String[] args) {
new KeyEventDemo();
}
}
Ⅶ Java 程序實現滑鼠點擊 鍵盤等事件
這個用MouseListener里的mouseEntered(MouseEvent
e)方法。
滑鼠進入區域就產生事件反應。
如果之前申明了點擊事件可以在entered時間里呼叫clicked事件。
Ⅷ Java 鍵盤事件 鍵盤
你沒有API嗎?下面是java API對KeyEvent的解釋: getKeyChar 方法總是返回有效的 Unicode 字元或 CHAR_UNDEFINED。KEY_TYPED 事件報告字元輸入:KEY_PRESSED 和 KEY_RELEASED 事件不必與字元輸入關聯。因此,可以保證 getKeyChar 方法的結果只對 KEY_TYPED 事件有意義。 對於按下鍵和釋放鍵事件,getKeyCode 方法返回該事件的 keyCode。對於鍵入鍵事件,getKeyCode 方法總是返回 VK_UNDEFINED。 「按下鍵」和「釋放鍵」事件 是低級別事件,依賴於平台和鍵盤布局。只要按下或釋放鍵就生成這些事件,它們是發現不生成字元輸入的鍵(如動作鍵、修改鍵等等)的惟一方式。通過 getKeyCode 方法可指出按下或釋放的鍵,該方法返回一個虛擬鍵碼。 虛擬鍵碼 用於報告按下了鍵盤上的哪個鍵,而不是一次或多次鍵擊組合生成的字元(如 "A" 是由 shift + "a" 生成的)。 例如,按下 Shift 鍵會生成 keyCode 為 VK_SHIFT 的 KEY_PRESSED 事件,而按下 'a' 鍵將生成 keyCode 為 VK_A 的 KEY_PRESSED 事件。釋放 'a' 鍵後,會激發 keyCode 為 VK_A 的 KEY_RELEASED 事件。另外,還會生成一個 keyChar 值為 'A' 的 KEY_TYPED 事件。 按下和釋放鍵盤上的鍵會導致(依次)生成以下鍵事件: KEY_PRESSED KEY_TYPED(只在可生成有效 Unicode 字元時產生。) KEY_RELEASED 但在某些情況下(例如,在激活自動重復或輸入方法時),該順序可能會有所不同(並且與平台有關)。
以上回答你滿意么?
Ⅸ java鍵盤事件響應過程是什麼,具體怎麼寫
implements KeyListener
事件
void keyPressed(KeyEvent e)
按下某個鍵時調用此方法。
void keyReleased(KeyEvent e)
釋放某個鍵時調用此方法。
void keyTyped(KeyEvent e)
鍵入某個鍵時調用此方法。
Ⅹ 編寫java鍵盤事件的程序
import java.awt.*;
import java.awt.event.*;
public class KeyEventDemo extends Frame implements KeyListener
{
Label l1 = new Label();
Panel p = new Panel();
public void keyPressed(KeyEvent e)
{
l1.setText("key down");
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){
l1.setText("key up");
}
public KeyEventDemo(String title){
super(title);
p.add(l1);
add(p);
this.addKeyListener(this);
setSize(200,100);
setVisible(true);
this.requestFocus(true);
}
public static void main(String[] agrs)
{
new KeyEventDemo("KeyEvent中的案件實例");
}}自己運行一下。