Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击保存按钮后如何更新JTextfield_Java_Eclipse_Jbutton_Jtextfield - Fatal编程技术网

Java 单击保存按钮后如何更新JTextfield

Java 单击保存按钮后如何更新JTextfield,java,eclipse,jbutton,jtextfield,Java,Eclipse,Jbutton,Jtextfield,我有一个主框架:JFrame>contentFrame>ScrollPane>BigPanel>panel\u 1T private JPanel contentPane; private JPanel BigPanel; private JPanel panel_1T; 在panel_1T中,我放置了一个带有actionListener的食物按钮: JButton button_19 = new JButton("FOOD"); button_19.addActionListener(new

我有一个主框架:JFrame>contentFrame>ScrollPane>BigPanel>panel\u 1T

private JPanel contentPane;
private JPanel BigPanel;
private JPanel panel_1T;
在panel_1T中,我放置了一个带有actionListener的食物按钮:

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);
当用户单击食物按钮时,将显示
newFoodUI
类中的新JFrame: JFrame>contentPane>panel>tabbedPane>panel_3>panel_5

在面板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
中写入一些文本。然后用户单击面板_3中的保存按钮,它将执行以下操作:

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);
}

结果是,当我单击SAVE按钮并关闭newFoodUI中的框架时,我将通过单击FOOD按钮重新打开,以检查我编写的文本是否已保存。但它并没有保存我写的文本

您必须保存textfeld
textField_3.getText()
中的值,并在显示
textField_3.setText(value)
时手动将该值设置为textfeld。因此,您必须在项目中保留您的价值,或者将其永久存储在某个地方。

这里有一些问题需要解决,我不会给出完整的代码,但我会指出一些错误。首先让我们考虑一下你的代码> ButoNo1919/Cord>侦听器< /P>
public void actionPerformed(ActionEvent ae) {

        newFoodUI nf = new newFoodUI();//Open other class
        nf.setVisible(true);
        nf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);      

}
执行此操作时,它将创建一个全新的对象
newFoodUI
,并且不给它任何参数。那么,如果你什么都不给,这个框架怎么会知道在它被创造之前发生的事情呢?此外,如果希望重用它,可以使用
HIDE\u ON\u CLOSE
时,您明确地说
DISPOSE\u ON\u CLOSE

然后在
JButton按钮中,4=新JButton(“保存”)侦听器您希望将数据保存在文本字段中,但您的实现对文本字段不做任何操作。例如,您应该从
textField_3
获取文本并将其写入文件或发送回第一个
JFrame


感谢您介绍多个JFrame,并需要将JFrame更改为JDialog。。但是我仍然使用
DISPOSE\u ON\u CLOSE
,因为它仍然显示保存的文本。@doraemon DISPOSE非常好。隐藏是一种不必始终使用
new
创建对象的方法