1

我正在开发有助于解决金融书籍问题的教程软件。所以它有点像包含组合框和格式化文本框的工作表。除了一件事,一切都按我的意愿工作。有没有办法可以随时保存我所做的工作。

让我具体。共有十二章,每章包含大约 15-20 个问题。每个问题都是结合文本框和组合框以及一些 jtabbed 面板等设计的。如果我解决了一半的工作表并想要保存以便稍后打开它,我会打开我的软件。有没有办法做到这一点。问题是每张纸都有不同的组合框和文本框,所以变量也不同。

提前致谢

4

2 回答 2

1

那么你必须有一个持久存储才能保存这个桌面应用程序的状态。想想数据库或文件存储。您还可以序列化“应用程序的状态”。在一个对象中并将其保存在磁盘上,当您再次启动应用程序时,您会重新加载它。

于 2011-06-25T18:41:08.060 回答
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(可能是 Swing)。我认为这不是问题。

于 2011-06-25T18:46:33.157 回答