我不確定我是否理解這裏的要求,但看看這個例子是否給你一些想法。
它的基本推力是確保在可聚焦的組件周圍存在「空白區域」(在此示例中爲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();
}
});
}
}
http://www.roseindia.net/answers/viewqa/Swing-AWT/6311-virtual-onscreen-keyboard-project-using-java-and-swings.html –
人,我們怎麼可能有一個想法從哪裏開始?告訴我們你到目前爲止所嘗試過的。 – TheBlastOne
*「請讓我知道netbeans是否有簡單的方法。」*如果Java可以做到這一點,Netbeans也可以做到這一點。順便說一句 - 我可以想到在完成這項任務時可能會提出的14個可能的問題。你問哪一個? –