对于嵌入式自助服务终端系统,我需要一个弹出键盘,类似于每个Android智能手机。如果有人点击文本字段,弹出键盘将显示,如果有人单击另一个点作为文本字段,弹出键盘将隐藏。 我已经意识到弹出键盘:
public Keyboard() {
super("pop-up keyboard");
setDefaultCloseOperation(EXIT_ON_CLOSE);
txt = new JTextField(20);
keyboard = new PopUpKeyboard(txt);
txt.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
Point p = txt.getLocationOnScreen();
p.y += 30;
keyboard.setLocation(p);
keyboard.setVisible(true);
}
});
如果我点击文本字段键盘打开。但是现在我不知道如果文本字段上的焦点丢失,如何隐藏键盘。我试过这个,但它没有奏效:
txt.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
//
}
@Override
public void focusLost(FocusEvent e) {
keyboard.setVisible(false);
}
});
有人知道如何隐藏键盘吗?
感谢您的帮助!
答案 0 :(得分:0)
我已经意识到弹出键盘:
弹出键盘应该是未修饰的JDialog。在按键时,焦点将出现在对话框上。
如果有人单击另一个点作为文本字段,弹出键盘将隐藏。
然后,您可以在对话框中添加WindowListener
并处理windowDeactivated
事件并关闭对话框。