如何为触摸屏编写java虚拟键盘?

时间:2014-07-31 12:54:14

标签: java swing keyboard jframe jtextfield

我在网上找到了很多解决方案,但没有一个适合我的问题。我在JFrame个KeyBoard中,点击后,在另一个JTextField中的JFrame中写入。 由于OnClickEvent中的JText,就像iphone键盘一样,键盘出现了。 如何将按钮链接到另一帧中的JTextField

1 个答案:

答案 0 :(得分:1)

首先你的Swing键盘需要知道传递值的位置。为它添加一个JTextComponent字段变量和一个setter:

private JTextComponent textComponent;

JTextComponent是JTextField,JTextArea等的基类......

然后你需要编写一个处理动作的ActionListener:

private class KeyboardActionListener implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        try {
            JButton key = (JButton) e.getSource();
            textComponent.getDocument().insertString(textComponent.getCaretPosition(), key.getText(), null);
        } catch (BadLocationException ex) {
            Logger.getLogger(KeyboardDialog.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

第三步是将所有按钮添加到该动作侦听器。单击一个按钮时,它将从ActionEvent获取按钮,并将其值插入当前的carret位置。请记住,这不会处理功能键。为此,请查看JTextComponent