2013-04-03 35 views
1

我正在開發我的Java任務。我必須創建一個虛擬鍵盤,而我的教授沒有教我們關於KeyPressed的信息,而且現在我陷入了困境。如何在Java中使用KeyPressed

我的問題是,如果我想讓用戶在JTextFiled中輸入某些內容,並且想要更改JButton的背景以便在用戶輸入鍵盤上可用的任何字符時以不同的顏色顯示,那我該如何去做?

例如,如果用戶點擊空格鍵,我希望框架上空格鍵的顏色顯示爲黑色,當用戶釋放按鈕時,顏色會更改爲原始背景顏色。

我知道如何創建JFrame,JButton,JLabel和JPanel。

這是我創建的簡單代碼。

import javax.swing.*; 
import java.awt.*; 

public class Assignment extends JFrame { 

    private JButton jbtnSpace = new JButton(" "); 
    private JPanel jpnl1 = new JPanel(); 

    private JTextArea txta = new JTextArea(10,62); 

    public Assignment(){ 

    jpnl1.add(txta); 

    jpnl1.add(jbtnSpace); 

    this.add(jpnl1); 

    } 

    public static void main(String[] args) { 

     Assignment jfrm = new Assignment(); 

     jfrm.setTitle("Assignment"); 
     jfrm.setSize(710,440); 
     jfrm.setVisible(true); 
     jfrm.setDefaultCloseOperation(EXIT_ON_CLOSE); 

    } 

} 

請幫忙。謝謝

+4

先看看[如何編寫關鍵監聽器](http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html),然後看看[Listening for Changes在文檔上](http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#doclisteners)替代解決方案 – MadProgrammer

+0

謝謝。我現在就看看它。 – Jack

回答

0

試試這個:

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {          

    int i=evt.getKeyChar(); 
    if(i==KeyEvent.VK_SPACE)  //or any Key Constant 
    { 
     //your code of changing the color 
    } 
} 

我希望這有助於。正如其中一條評論所述,您必須瞭解工作情況。