【发布时间】:2023-03-24 04:00:02
【问题描述】:
对于我的程序,我有两个按钮,“添加”和“保存”。当我单击“添加”时,JPanel 中会添加一个按钮。 我的问题是,如何使用用户添加的所有按钮保存程序的当前状态?我是否使用序列化? 这是我的代码的 sn-p:
public class saveButton
{
//JFrame and JPanels have been declared earlier
class ClickListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str = JOptionPane.showInputDialog("Name of button");
JButton b = new JButton(str);
frame.add(b);
}
}
ActionListener addButtonClicked = new ClickListener();
b.addActionListener(addButtonClicked);
class ClickListenerTwo implements ActionListener
{
public void actionPerformed(ActionEvent f)
{
//save all of the program
}
}
}
【问题讨论】:
-
是的,序列化可能有效
-
@Scary Wombat 我将如何对这部分使用序列化?我确定我不应该序列化这些按钮,因为它们可能有一百万个。我应该序列化 JFrame 还是 JPanel?
-
1) “这是我的代码的 sn-p:” 这..
String str = JOptionPane.showMessageDialog(null, "Name of button");..甚至可以编译吗? 2) 请参阅Detection/fix for the hanging close bracket of a code block 了解我无法再费心解决的问题。 -
@Andrew Thompson 我修好了
-
@MadProgrammer “作为一般建议,序列化并不意味着对象的长期存储。” 我认为澄清该建议适用于“对象序列化”很有用' 使用 Java 的默认对象序列化。还有许多其他方法可以序列化数据/程序状态。我通常会制作一个需要存储的 Java bean,并使用
XMLEncoder和XMLDecoder来写入/读取它。至于'其他方法的序列化去,有很多选择。一些细节见this answer。
标签: java swing button serialization