我在网上找到了许多解决方案,但是没有一个适合我的问题。我在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。