如何保存Java对象和IO

如何保存Java对象和IO,java,swing,serialization,Java,Swing,Serialization,这个HashMap是我想要保存并传输给其他人的信息 HashMap<String,City> labelMap; 那么,如何将包含上述信息的HashMap保存到一个文件中,以便稍后加载或发送 我尝试使用序列化,但它不起作用。有没有一种方法可以有效地存储基于Swing的程序对象 最后我解决了 问题不是awt或基于swing的 我从Jlabel那里得到的字符串不是英语,但它是否是英语并不重要,但如果它不是英语则是错误的。因此Jlabel.setText=“”;我将Jlabel的文本设置

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

HashMap<String,City> labelMap;
那么,如何将包含上述信息的HashMap保存到一个文件中,以便稍后加载或发送

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

最后我解决了

问题不是awt或基于swing的

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

毕竟,问题出在JLabel.getText上,它使用了一个非英语字符并将其序列化,最后我解决了。 问题不是awt或基于swing的

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


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

“有没有办法有效地存储基于Swing的程序对象?”方法不是存储组件本身,而是存储其内容或状态。例如,对于文本字段,字符串内容。对于复选框,表示是否选中该复选框的布尔值。对于这个自定义标签,两个属性,
point
textString
(可能会生成一个只包含这两个对象的可序列化POJO)。顺便说一句,我会避免这种形式的序列化,而选择XML。Swing组件(如
JLabel
)不可序列化有很好的理由…您说过“我尝试过使用序列化,但它不起作用”。请以a的形式分享您的,您的,以及为什么包括错误消息和/或堆栈跟踪,以便阅读您的问题的人能够更好地帮助您。@D.B.很好的建议,特别是“.以MCVE的形式”。提示:注释中的
[mcve]
会自动扩展为。
    class City implements Serializable{
            ArrayList<Marker> markerList;
    City(){
        markerList = new ArrayList<Marker>();
    }

    public void setMarker(Marker marker) {
        markerList.add(marker);
    }
}
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;
 }
}