【发布时间】:2014-06-26 00:13:02
【问题描述】:
我正在尝试保存ArrayList 或GraphicObjects 以便稍后重新加载。问题是,我无法加载ArrayList,我总是得到一个空的ArrayList 而不是原来的ArrayList。
原来的ArrayList里面有[Line@2f06692f]这样的Object。
这是我的代码的重要部分:
PaintPanel p = new PaintPanel();
...a lot of code...
@Override
public void actionPerformed(ActionEvent e) {
ArrayList<GraphObject> savedList= new ArrayList<>();
switch (e.getActionCommand()) {
case "Save":
savedList = p.getGraphicList();
break;
这行得通,我在savedList 中得到了[Line@2f06692f]。
但是,当我尝试加载它时:
...some cases...
case "Load":
p.setGraphicList(savedList);
break;
这不起作用,savedList 此时始终为空。
这是我的PaintPanel 类,其中graphicList 是我要保存的。
public class PaintPanel extends JPanel {
public ArrayList<GraphObject> graphicList = new ArrayList<>();
...
我不知道为什么......
这是我的接口 GraphObject:
import java.awt.*;
import java.io.Serializable;
public interface GraphObject extends Serializable {
void paint(Graphics2D g2d, boolean tmp);
void setPaintColor(Color color);
}
【问题讨论】:
-
为了清楚起见,我们是在谈论
com.facebook.model.GraphObject对象还是您自己的自定义对象? -
我有自己的接口 GraphObject
-
“保存”和“加载”案例是否属于同一个
switch?如果是,那么当然在“加载”情况下,savedList将被初始化但为空
标签: java swing arraylist switch-statement graphics2d