Всплывающая клавиатура в Java - PullRequest
0 голосов
/ 24 мая 2018

для встроенной системы киосков мне нужна всплывающая клавиатура, что-то, как в каждом Android-смартфоне.Если кто-то щелкнет текстовое поле, появится всплывающая клавиатура, а если кто-то щелкнет другую точку в качестве текстового поля, всплывающая клавиатура будет скрыта.Я уже понимаю popupkeyboard:

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 голосов
/ 24 мая 2018

Я уже понимаю всплывающую клавиатуру:

Всплывающая клавиатура должна быть неокрашенным JDialog.Фокус будет на диалоге, пока вы нажимаете клавиши.

, если кто-то нажмет другую точку в качестве текстового поля, всплывающая клавиатура будет скрыта.

Затем вы можете добавить WindowListener в диалоговое окно, обработать событие windowDeactivated и закрыть диалоговое окно.

...