单击“保存”按钮后如何更新 JTextfield
How to update JTextfield after click SAVE button
我有一个主框架:JFrame>contentFrame>ScrollPane>BigPanel>panel_1T
private JPanel contentPane;
private JPanel BigPanel;
private JPanel panel_1T;
在 panel_1T 中,我放置了一个带有 actionListener 的 FOOD 按钮:
JButton button_19 = new JButton("FOOD");
button_19.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
newFoodUI nf = new newFoodUI();//Open other class
nf.setVisible(true);
nf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
});
panel_1T.setLayout(new GridLayout(0, 2, 0, 0));
panel_1T.add(button_19);
当用户单击 FOOD 按钮时,将显示 newFoodUI
class 中的新 JFrame。:
JFrame>contentPane>面板>tabbedPane>panel_3>panel_5
在panel_5中,我放了一个JTextField:
public static JTextField textField_3;
textField_3 = new JTextField();
panel_5.add(textField_3, "9, 4, fill, default");
textField_3.setColumns(10);
用户将向 textField_3
中写入一些文本。然后用户点击 panel_3 中的 SAVE 按钮,它会执行这个:
JButton button_4 = new JButton("SAVE");
button_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setContentPane(contentPane);
panel_3.revalidate();
panel_3.repaint();
panel_3.updateUI();
panel_5.revalidate();
panel_5.repaint();
panel_5.updateUI();
contentPane.revalidate();
contentPane.repaint();
JOptionPane.showMessageDialog(null, "Saved !");
}
});
button_4.setBounds(873, 396, 75, 33);
contentPane.add(button_4);
}
结果是,当我在newFoodUI中点击SAVE按钮并关闭Frame时,我会通过点击FOOD按钮重新打开来检查我写的文本是否已经保存。但它不保存我写的文字。
您必须保存来自文本字段 textField_3.getText()
的值,并在显示 textField_3.setText(value)
时手动将此值设置为文本字段。所以你必须在你的项目中保持你的价值或者在某个地方持久存储。
这里有一些问题需要解决,我不会给你完整的代码,但我会指出一些错误。首先让我们考虑一下您的 button_19
听众
public void actionPerformed(ActionEvent ae) {
newFoodUI nf = new newFoodUI();//Open other class
nf.setVisible(true);
nf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
执行此操作时,它会创建一个全新的 newFoodUI
对象并且不给它任何参数。那么如果你什么都不给它,这个框架怎么能知道它创建之前发生的任何事情呢?此外,如果您希望重用它,您可以使用 HIDE_ON_CLOSE
时明确说明 DISPOSE_ON_CLOSE
。
然后在您的 JButton button_4 = new JButton("SAVE");
侦听器中,您想将数据保存在文本字段中,但是您的实现对文本字段没有任何作用。例如,您应该从 textField_3
获取文本并将其写入文件或发送回第一个 JFrame
.
Then there is the issue of using multiple JFrames
in the first place.
我有一个主框架:JFrame>contentFrame>ScrollPane>BigPanel>panel_1T
private JPanel contentPane;
private JPanel BigPanel;
private JPanel panel_1T;
在 panel_1T 中,我放置了一个带有 actionListener 的 FOOD 按钮:
JButton button_19 = new JButton("FOOD");
button_19.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
newFoodUI nf = new newFoodUI();//Open other class
nf.setVisible(true);
nf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
});
panel_1T.setLayout(new GridLayout(0, 2, 0, 0));
panel_1T.add(button_19);
当用户单击 FOOD 按钮时,将显示 newFoodUI
class 中的新 JFrame。:
JFrame>contentPane>面板>tabbedPane>panel_3>panel_5
在panel_5中,我放了一个JTextField:
public static JTextField textField_3;
textField_3 = new JTextField();
panel_5.add(textField_3, "9, 4, fill, default");
textField_3.setColumns(10);
用户将向 textField_3
中写入一些文本。然后用户点击 panel_3 中的 SAVE 按钮,它会执行这个:
JButton button_4 = new JButton("SAVE");
button_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setContentPane(contentPane);
panel_3.revalidate();
panel_3.repaint();
panel_3.updateUI();
panel_5.revalidate();
panel_5.repaint();
panel_5.updateUI();
contentPane.revalidate();
contentPane.repaint();
JOptionPane.showMessageDialog(null, "Saved !");
}
});
button_4.setBounds(873, 396, 75, 33);
contentPane.add(button_4);
}
结果是,当我在newFoodUI中点击SAVE按钮并关闭Frame时,我会通过点击FOOD按钮重新打开来检查我写的文本是否已经保存。但它不保存我写的文字。
您必须保存来自文本字段 textField_3.getText()
的值,并在显示 textField_3.setText(value)
时手动将此值设置为文本字段。所以你必须在你的项目中保持你的价值或者在某个地方持久存储。
这里有一些问题需要解决,我不会给你完整的代码,但我会指出一些错误。首先让我们考虑一下您的 button_19
听众
public void actionPerformed(ActionEvent ae) {
newFoodUI nf = new newFoodUI();//Open other class
nf.setVisible(true);
nf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
执行此操作时,它会创建一个全新的 newFoodUI
对象并且不给它任何参数。那么如果你什么都不给它,这个框架怎么能知道它创建之前发生的任何事情呢?此外,如果您希望重用它,您可以使用 HIDE_ON_CLOSE
时明确说明 DISPOSE_ON_CLOSE
。
然后在您的 JButton button_4 = new JButton("SAVE");
侦听器中,您想将数据保存在文本字段中,但是您的实现对文本字段没有任何作用。例如,您应该从 textField_3
获取文本并将其写入文件或发送回第一个 JFrame
.
Then there is the issue of using multiple JFrames
in the first place.