【问题标题】:Popup keyboard in javajava中的弹出式键盘
【发布时间】:2018-05-24 08:47:10
【问题描述】:

对于嵌入式 kiosk 系统,我需要一个弹出式键盘,就像在每个 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);
    }

    });

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

感谢您的帮助!

【问题讨论】:

  • 请提供minimal reproducible example,以便我们也可以了解您的代码中的问题并为您提出问题建议。也请看this topic。可能它可以帮助您找到解决方案。

标签: java swing keyboard popup


【解决方案1】:

我已经实现了弹出键盘:

弹出式键盘应该是未装饰的 JDialog。当您按下按键时,焦点将位于对话框上。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    相关资源
    最近更新 更多