我目前正在用Java编写我的学校项目,因为你必须管理一个小村庄的经济。 所以游戏看起来像这样:有一个框架,其中有49个SpecButtons(稍后解释)代表村庄的瓷砖。点击一个打开一个构建菜单,您可以从中选择要在那里构建的建筑类型等....
我创建了一个新类,它扩展了JButton类和Implements Serializable,称为SpacButtons。在本课程中,我添加了两个整数,一个Buildings类类型构建变量(也是我创建的类)和一些方法。
SpecButtons buttons=new SpecButtons[49];
所以我必须使用序列化保存游戏,这就是我尝试这样做的方式:
private class SaveButtonActionListener implements ActionListener{
public void actionPerformed(ActionEvent button) {
try{
FileOutputStream fos = new FileOutputStream("saves.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
for(int x = 0;x<49;x++){
oos.writeObject(buttons[x]);
}
oos.close();
fos.close();
}catch(IOException e){System.out.println("File Writing Error!");}
}
}
private class LoadButtonActionListener implements ActionListener{
public void actionPerformed(ActionEvent button) {
try{
FileInputStream fip = new FileInputStream("saves.ser");
ObjectInputStream oip = new ObjectInputStream(fip);
for(int x=0;x<49;x++){
buttons[x] = (SpecButtons) oip.readObject();
}
oip.close();
fip.close();
}catch(IOException e){System.out.println("File Reading Error!");}
catch(ClassNotFoundException ce){System.out.println("Class Not Found!");}
}
}
因此,它会创建.ser文件,但是当我尝试加载它时,没有任何反应。 如果你们有任何想法如何使它工作,我将非常感激。
答案 0 :(得分:1)
因此,它会创建.ser文件,但是当我尝试加载它时没有任何反应。
假设您的按钮被正确反序列化,您应该从.ser文件加载后将它们添加到主框架中。
for(int x=0;x<49;x++){
buttons[x] = (SpecButtons) oip.readObject();
}
// Add the buttons to the main frame where you would like them to appear...