我有一个jTextField,当我创建框架时,我将它的值设置为一定的总和。
这是启动代码:
totalTextField.setText(
itemsPriceTextField.getText() +
Float.toString(orderDetails.delivery)
);
此文本字段应显示用户选择的项目总和
选择在不同的帧上完成,并且两个帧都是可见/不可见的
一次。
用户可以来回移动并添加/删除项目。
现在,每次我再次设置此框架时,我需要将设置的值重新加载到该字段中 (可能没有进行任何更改,但如果是这样,我需要设置新的正确总和)。
我非常绝望 有人可以给我一个线索吗? 提前致谢! :)
答案 0 :(得分:9)
在再次设置框架可见之前,应该使用新的值/状态更新字段 类似的东西:
jTextField.setText("put your text here");
jRadioButton.setSelected(!isSelected());
.
/* update all you need */
.
jFrame.setVisible(true);
框架将显示新的值/状态。
答案 1 :(得分:3)
将WindowListener添加到框架中。然后,您可以处理windowActivated事件并重置文本字段的文本。
请参见如何Write Window Listeners。
答案 2 :(得分:0)
使用 DocumentListener 触发 JTextField public void setText(String t)
这里有一个 DocumentListener 的例子:
public class SetTextInJTextField extends JFrame implements DocumentListener {
JTextField entry;
JTextField entryToSet = new JTextField();
public SetTextInJTextField() {
createWindow();
entry.getDocument().addDocumentListener(this);
}
private void createWindow() {
JFrame frame = new JFrame("Swing Tester");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createUI(frame);
frame.setSize(560, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private void createUI(final JFrame frame) {
JPanel panel = new JPanel();
entry = new JTextField();
entryToSet = new JTextField();
LayoutManager layout = new BoxLayout(panel, BoxLayout.PAGE_AXIS);
panel.setLayout(layout);
panel.add(this.entry);
panel.add(entryToSet);
frame.getContentPane().add(panel, BorderLayout.CENTER);
}
public void setTextInTargetTxtField() {
String s = entry.getText();
entryToSet.setText(s);
}
// DocumentListener methods
public void insertUpdate(DocumentEvent ev) {
setTextInTargetTxtField();
}
public void removeUpdate(DocumentEvent ev) {
setTextInTargetTxtField();
}
public void changedUpdate(DocumentEvent ev) {
}
public static void main(String args[]) {
//Schedule a job for the event dispatch thread:
//creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new SetTextInJTextField().setVisible(true);
}
});
}
}
相关课程: https://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html