我正在制作有助于解决财务手册问题的教程软件。所以它类似于包含组合框和格式化文本框的工作表类型。除了一件事之外,一切都按照我想要的方式运作。有没有办法可以保存我在任何时间点完成的工作。
Lemme具体。共有十二章,每章包含15-20个问题。每个问题都是设计与文本框和组合框和一些jtabbed面板等的组合。如果我解决了我的工作表的一半,并希望保存,以便我可以打开它以后我打开我的软件。有没有办法做到这一点。问题是每个工作表都有不同的组合框和文本框,因此变量也不同。
提前致谢
答案 0 :(得分:1)
那么你必须有一个持久存储才能保存这个桌面应用程序的状态。请注意数据库或文件存储。 您还可以序列化“应用程序的状态”。在一个对象中并将其保存在磁盘上,当您再次启动应用程序时,重新加载它。
答案 1 :(得分:1)
您需要工作表的模型。这个模型是一个数据结构,并且没有(本身)与GUI小部件用于表示它的事实有关。
您可以保存模型的状态 - 从简单的序列化开始 - 在保存时保存到磁盘。启动时加载。
这些内容可以统一处理您的工作表。
public interface PersistentModel {
boolean save (OutputStream out) throws IOException;
boolean load (InputStream out) throws IOException;
}
public interface SpreadSheet extends PersistentModel {
Worksheet[] getWorksheets();
Worksheet getWorksheet(int i); // and other related, etc.
}
public interface Worksheet extends PersistentModel {
int id();
Element get(String name):
Element[] getElements();
public interface Element<T> extends PersistentModel {
String getName();
T getValue();
boolean setValue(T v);
}
}
Swing使用MVC,你有标准的机制来挂钩你的模型(数据结构保持工作表的状态),以及GUI(可能的摆动),它是相同的表示。我认为这不是问题。