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