方法一 實現(xiàn)KeyListener 接口并復(fù)寫其中的方法
10年積累的成都做網(wǎng)站、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有貴南免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
public class Test extends JFrame implements KeyListener{
public void keyPressed(KeyEvent e) {} // 按鍵按下
public void keyReleased(KeyEvent e){} // 按鍵松開
}
具體使用:
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_ENTER: // 按下回車鍵
// 在這里寫代碼...
break;
case KeyEvent.VK_UP: // 按下方向鍵上
// 在這里寫代碼...
break;
}
因為你添加的面板上含有按鈕,第一個按鈕默認(rèn)會獲得焦點,只有獲得焦點組建才會相應(yīng)事件。因為Frame無法獲得焦點,所以就無法再響應(yīng)事件了。如果把JButton改成JLabel,就不會有問題了。JLabel默認(rèn)不會獲得焦點,焦點仍然在Frame上,所以還會響應(yīng)事件。
采用樓上,或改為
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);
}
}
請問你的鍵盤時間事某個特定按鈕還是要監(jiān)聽鍵盤按下的鍵呢~?我都給你列在下面吧!如果事特定的按鈕我給你個例子!其實用的就是一句話!JFrame.getRootPane.setDefaultButton(new JButton()) ;就可以啦!意思是 取跟面板然后設(shè)置默認(rèn)按鈕就可以了! 如果你事要監(jiān)聽單個的鍵盤按鈕的話就這樣~~~~例子如下?。耗憧炊@個代碼就明白了!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("確認(rèn)");
txt1.addKeyListener(this); //應(yīng)該是在 TextField 里添加鍵盤監(jiān)聽事件
btnOK.addActionListener(this);//在按鈕上添加事件監(jiān)聽
pnlMain.setLayout(new BorderLayout());//添加布局器
pnlMain.add(txt1,BorderLayout.NORTH); //TextField 布局在上方
pnlMain.add(btnOK,BorderLayout.SOUTH); //Button 布局在下方
setTitle("好啊");
setSize(300, 200);
setVisible(true);//viersible() 函數(shù)應(yīng)該放在最后
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) {} //函數(shù)要和接口 KeyListener 中定義的一摸一樣 public void keyReleased(KeyEvent e) {} //函數(shù)要和接口 KeyListener 中定義的一摸一樣 public static void main(String[] args) {
new KeyEventDemo();
}
}
創(chuàng)建一個關(guān)于鍵盤事件的程序。該程序?qū)崿F(xiàn)了當(dāng)用戶按下鍵盤時,程序中的一個面板中將顯示用戶的鍵盤輸入。為了實現(xiàn)對鍵盤事件進(jìn)行處理,容器類必須實現(xiàn)接口KeyListener.該接口定義了3個方法KeyPressed(KeyEvebt e)、KeyReleased(Key-Event e)、KeyTyped(KeyEvent e)。其中,當(dāng)按下一個鍵時,調(diào)用KeyTyped方法;釋放一個鍵時,調(diào)用KeyReleased方法;如果一個字符鍵被按下,那么會調(diào)用KeyTyped方法。因此,當(dāng)按下一個鍵時,通常會產(chǎn)生兩到三個事件。實驗KeyType方法,以顯示用戶輸入的字符。 (1)創(chuàng)建一個名為KeyEventDemo的java文件。 (2)在該文件中創(chuàng)建KeyEventDemo類,該類繼承了JFrame,并實現(xiàn)KeyListener接口。 (3)在KeyEventDemo類中實現(xiàn)在KeyPressed、KeyReleased和KeyType方法。 (4)在KeyEventDemo類中添加String類型變量。該變量用于保存用戶輸入的字符。 (5)在KeyType方法中調(diào)用KeyEvent的getKeyChar()方法,獲取用戶輸入的字符,并保存到String類型變量中。最后調(diào)用repaint方法更新顯示用戶輸入的字符串。 (6)為KeyEventDemo類添加paint方法,此方法負(fù)責(zé)顯示用戶輸入的字符。 (7)用戶也可以在KeyPressed和KeyReleased方法中間調(diào)用getKeyCode方法,以獲取特殊的按鍵。比如方向鍵和退格鍵。
文章名稱:java鍵盤事件代碼,java添加鍵盤事件
URL分享:http://m.newbst.com/article2/dssecoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、微信公眾號、虛擬主機、定制開發(fā)、App設(shè)計、軟件開發(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)