在java中的弹出键盘

时间:2018-05-24 08:47:10

标签: java swing keyboard popup

对于嵌入式自助服务终端系统,我需要一个弹出键盘,类似于每个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);
    }

    });

有人知道如何隐藏键盘吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  

我已经意识到弹出键盘:

弹出键盘应该是未修饰的JDialog。在按键时,焦点将出现在对话框上。

  

如果有人单击另一个点作为文本字段,弹出键盘将隐藏。

然后,您可以在对话框中添加WindowListener并处理windowDeactivated事件并关闭对话框。