如何保存Java对象和IO



这个HashMap是我想要保存并传输给其他人的信息。

HashMap<String,City> labelMap;

城市对象具有ArrayList

class City implements Serializable{
ArrayList<Marker> markerList;
City(){
markerList = new ArrayList<Marker>();
}
public void setMarker(Marker marker) {
markerList.add(marker);
}
}

Marker类是JLabel Object

class Marker extends JLabel implements Serializable{
ImageIcon image;
private Point point;
private String textString;

Marker(Point point, String textString){
this.point = point;
this.textString = textString;
image = new ImageIcon(Toolkit.getDefaultToolkit().getImage("Icon/marker.png"));
setIcon(image);
}
public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point;
}
public String getTextString() {
return textString;
}
public void setTextString(String textString) {
this.textString = textString;
}
}

那么,如何将包含上述信息的HashMap保存到文件中,以便以后加载或发送它呢?

我尝试使用序列化,但它不起作用。有没有一种方法可以有效地存储基于Swing的程序对象?

最后我解决了。

问题不是基于awt或swing。

我从Jlabel得到的字符串不是英语,但它是否是英语并不重要,但如果它不是英语,那就是一个错误。因此Jlabel.setText=";我将Jlabel的文本设为空白,然后序列化非英文字符来修复它

毕竟,问题出在JLabel.getText上,它采用了一个非英文字符并将其序列化为

最后我赢了。问题不是基于awt或swing。

我从Jlabel得到的字符串不是英语,如果是英语也没关系,但如果不是英语,那就是一个错误。因此Jlabel.setText=";我将Jlabel的文本设为空白,然后序列化非英文字符来修复它

毕竟,问题出在JLabel.getText上,它采用了一个非英文字符并将其序列化为

最新更新