Java 如何保存/加载此JButtons配置?

Java 如何保存/加载此JButtons配置?,java,jframe,datainputstream,dataoutputstream,Java,Jframe,Datainputstream,Dataoutputstream,这就是我如何将所有JButton添加到面板和arraylist的方法 private ArrayList<JButton> b; String defaultLogo = "O"; for(int i=0; i<81;i++) { b.add(new JButton(defaultLogo)); b.get(i).addActionListener(new ActionListener(){ @Override

这就是我如何将所有JButton添加到面板和arraylist的方法

  private ArrayList<JButton> b;
  String defaultLogo = "O";


  for(int i=0; i<81;i++)
  {

      b.add(new JButton(defaultLogo));
      b.get(i).addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {
            for (int i = 0; i < b.size(); i++){
                if (e.getSource() == b.get(i)){
                    b.get(i).setText(getSymbol());
                    b.get(i).setForeground(getColor());
                    b.get(i).setBackground(getBackColor());
                }
            }

        }

      });
      tilePanel.add(b.get(i));

  }


您可以尝试序列化,保存保存保存按钮的对象

下面是一个例子:

保存数据的对象

import java.io.Serializable;
import java.util.ArrayList;

public class Config implements Serializable {
    private static final long serialVersionUID = 1L;
    private ArrayList<String[]> Data;
    public Config(){
        Data=new ArrayList<String>();

    }

    public void addData(String path){
        Data.add(path);
    }
    public String getData(int index){
        return Data.get(index);
    }

}

要序列化的对象的文件名应具有扩展名“.ser”

是否可以将其另存为.til?@MadProgrammer我如何在我的man类中实现这一点,以便在激活save和load方法时保存/加载配置?@calvintineburg我将链接作为对原始问题的注释,我建议看一下它们,看看哪种方法适合您的需要——JAXB更灵活,但可能需要更多的时间进行设置和/或修改
import java.io.Serializable;
import java.util.ArrayList;

public class Config implements Serializable {
    private static final long serialVersionUID = 1L;
    private ArrayList<String[]> Data;
    public Config(){
        Data=new ArrayList<String>();

    }

    public void addData(String path){
        Data.add(path);
    }
    public String getData(int index){
        return Data.get(index);
    }

}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.nio.file.Paths;
import java.io.File;
public class FileSerial {

    private FileSerial(){}

    public static Config deserialize(){

        Config result;

        try {
            FileInputStream fis = new FileInputStream(Paths.get("path to your file"));
            ObjectInputStream ois = new ObjectInputStream(fis);
            result = (Config) ois.readObject();
            ois.close();
        } catch (Exception e){
            e.printStackTrace();
    }

        return result;

    }

    public static void serialize(Config obj){
        try {

            File file = new File(Paths.get("path to file"));
            if(!file.exists()){
                file.getParentFile().mkdirs();
            }

            FileOutputStream fos = new FileOutputStream(path.toString());
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(obj);
            oos.close();

        } catch (Exception e){
            e.printStackTrace();
        }
    }

}