2012-06-14 93 views
2

我想創建一個屏幕鍵盤,以便當文本字段變得焦點時,鍵盤出現在屏幕上,當焦點丟失或者在屏幕之外單擊時,鍵盤應該消失。關於創建java屏幕鍵盤的建議

這不是問題,問題是我不知道我應該用什麼來創建這樣的鍵盤。我不能使用jFrame,因爲如果我在鍵盤窗口外單擊,則鍵盤會轉到背景並且未關閉。我也不能使用jDialog,因爲它不允許我們在窗口外點擊。

我也希望能夠顯示一個文本框與實時鍵盤輸入的內容(因爲我點擊屏幕鍵盤上它應該出現在文本框中的鍵)。我在netbeans上做這個程序,所以如果你能牢記這一點,這將是有益的。

+2

http://www.roseindia.net/answers/viewqa/Swing-AWT/6311-virtual-onscreen-keyboard-project-using-java-and-swings.html –

+0

人,我們怎麼可能有一個想法從哪裏開始?告訴我們你到目前爲止所嘗試過的。 – TheBlastOne

+0

*「請讓我知道netbeans是否有簡單的方法。」*如果Java可以做到這一點,Netbeans也可以做到這一點。順便說一句 - 我可以想到在完成這項任務時可能會提出的14個可能的問題。你問哪一個? –

回答

2

我不確定我是否理解這裏的要求,但看看這個例子是否給你一些想法。

它的基本推力是確保在可聚焦的組件周圍存在「空白區域」(在此示例中爲OK RED/ORANGE,但我們不要嘲笑灰色陰影)。添加一個鼠標監聽器,並在事件中,請求焦點(或在你的情況下,隱藏鍵盤)。

import java.awt.*; 
import java.awt.event.*; 

import javax.swing.*; 

public class ComponentFocus { 

    ComponentFocus() { 
     final JPanel gui = new JPanel(new GridLayout(0,1,15,15)); 
     gui.setFocusable(true); 
     gui.addMouseListener(new MouseAdapter(){ 
      @Override 
      public void mouseClicked(MouseEvent me) { 
       System.out.println(me); 
       gui.requestFocus(true); 
      } 
     }); 
     gui.setBackground(Color.RED); 
     gui.addFocusListener(new FocusAdapter(){ 
      @Override 
      public void focusGained(FocusEvent fe) { 
       gui.setBackground(Color.ORANGE); 
      } 

      @Override 
      public void focusLost(FocusEvent fe) { 
       gui.setBackground(Color.RED); 
      } 
     }); 

     JButton button1 = new JButton("button1"); 
     gui.add(button1); 
     JButton button2 = new JButton("button2"); 
     gui.add(button2); 

     JOptionPane.showMessageDialog(null, gui); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new ComponentFocus(); 
      } 
     }); 
    } 
} 
+0

通知FocusListener和HierarchyListener是asyncronous +1 – mKorbel

+0

謝謝安德魯,但它沒有幫助,因爲它的行爲像一個jDialog,因爲我說我需要的鍵盤窗口,如果用戶單擊區域外窗口鍵盤退出(在jDialog中,如果我們點擊窗口外部,那麼我們聽到一個聲音「丁」,我們無法點擊外面,直到我們關閉對話框) – Sar009

+1

@ Sar009更快地幫助發佈[SSCCE](http ://sscce.org/),其他任何東西都只能拍攝到黑暗中 – mKorbel