关闭jframe并重新打开后,如何保存变量?

时间:2019-02-25 00:35:03

标签: java

我如何保存在每个文本框中输入的信息,以便在应用程序关闭后可以记住我下次打开应用程序时在文本框中输入内容时可以记住之前的内容?< / p>

我知道创建文本文件的行为,然后在下次打开它时会读取该文件。林不知道这是否是解决方案,但如果是,我不知道我会怎么做。下面的代码:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class RecipeFinder {
public static void main(String[] args) {

//JFrame
    JFrame frame = new JFrame("The Recipe Finder");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setPreferredSize(new Dimension(500,400));


//JPanel
    JPanel entry = new JPanel();
    entry.setLayout(new BoxLayout(entry, BoxLayout.Y_AXIS));

//JLabel
    JLabel insert = new JLabel("Insert Food/Ingredients");
    entry.add(insert);

//JTextField(s)
    JTextField foodOne = new JTextField();
    foodOne.setPreferredSize(new Dimension(200,24));
    entry.add(foodOne);
    JTextField foodTwo = new JTextField();
    foodTwo.setPreferredSize(new Dimension(200,24));
    entry.add(foodTwo);

//JButton(s)
    JButton addTextBox = new JButton("Add");
    addTextBox.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JTextField newBox = new JTextField();
            newBox.setPreferredSize(new Dimension(200,24));
            entry.add(newBox);
            entry.revalidate();
            frame.invalidate();
        }
    });
    JButton search = new JButton("Search Recipes");
    JPanel buttonPanel = new JPanel();
    buttonPanel.add(addTextBox);
    buttonPanel.add(search);
    JPanel rootPanel = new JPanel();
    rootPanel.setLayout(new BorderLayout());
    rootPanel.add(entry, BorderLayout.CENTER);
    rootPanel.add(buttonPanel, BorderLayout.SOUTH);

    JScrollPane rootEntry = new JScrollPane(rootPanel);
    rootEntry.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    rootEntry.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);


//FrameWork
    frame.add(rootEntry);
    frame.pack();
    frame.setVisible(true);

}

}

1 个答案:

答案 0 :(得分:0)

最简单的方法是Java序列化。您需要一个holder类来实现Serializable接口。它可以是带有字符串字段的pojo或任何数量的字符串的列表。然后,使用来自文本字段的数据填充此对象。填充的对象可以按此处How to write and read java serialized objects into a file

的说明进行存储和从磁盘恢复。