我正在开发帮助解决财务账簿问题的教程软件。所以它有点像工作表,包含组合框和格式化文本框。除了一件事,一切都按我的意愿进行。有没有一种方法可以让我在任何时候都能完成我的工作。
让我具体一点。共有十二章,每章包含大约15-20个问题。每个问题都是用文本框、组合框和一些jtabbed面板等组合设计的。如果我解决了一半的工作表,并想保存,以便以后打开它,我会打开我的软件。有办法做到这一点吗。问题是每张表都有不同的组合框和文本框,所以变量也不同。
提前感谢
您的工作表需要一个模型。这个模型是一个数据结构,与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(可能是Swing),这是相同的表示。我认为这不是问题。
为了保存这个桌面应用程序的状态,您必须有一个持久存储。想想数据库或文件存储。你也可以在一个对象中序列化"应用程序的状态",并将其保存在磁盘上,当你再次启动应用程序时,你会重新加载它。