我正在开发有助于解决金融书籍问题的教程软件。所以它有点像包含组合框和格式化文本框的工作表。除了一件事,一切都按我的意愿工作。有没有办法可以随时保存我所做的工作。
让我具体。共有十二章,每章包含大约 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)。我认为这不是问题。