所以,我的程序是一个用户在运行时添加按钮。当他/她点击“保存”按钮时,程序被保存到一个文件中。但是当我再次运行它时,按钮不见了。我尝试使用XMLEncoder和XMLDecoder序列化我的按钮,但是当我运行我的程序时,它没有保存任何内容,它重新开始。 我会如何正确地序列化这个,以便当我启动我的程序时,按钮在那里?任何帮助,将不胜感激。
这里是我的代码片段:为什么我运行程序时无法检索按钮?
public class saveButton
{
//JFrame and JPanels have been declared earlier
class ClickListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
str = JOptionPane.showInputDialog("What is the name of the new button?");
JButton b = new JButton(str);
frame.add(b);
try
{
XMLEncoder encdr = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("file.ser")));
encdr.writeObject(new JButton(str));
encdr.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
ActionListener addButtonClicked = new ClickListener();
b.addActionListener(addButtonClicked);
class ClickListenerTwo implements ActionListener
{
public void actionPerformed(ActionEvent f)
{
try
{
XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream("file.ser")));
Object result = d.readObject();
d.close();
}
catch (IOException decoder)
{
decoder.printStackTrace();
}
}
}
序列化你的按钮是不是要走来这里的路上。首先,你为什么试图序列化它们?定位?还是为了别的? –
我在序列化它们,以便稍后运行我的程序时可以检索它们。 –
你的解码器不会做任何事情,它应该将按钮添加回屏幕 – MadProgrammer