我在网上找到了许多解决方案,但是没有一个适合我的问题。我在JFrame中有一个键盘,单击后会写在另一个JTextField中的JFrame中。
键盘的出现要感谢OnClickEvent中的JText,类似于iphone键盘。
如何将按钮链接到另一帧中的JTextField

最佳答案

首先,您的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

10-04 22:14
查看更多