使用Netbeans的Java桌面应用程序
我正在开发教程软件,帮助解决金融书籍的问题。所以它有点像工作表,包含组合框和格式化文本框。除了一件事外,一切都按我的要求进行。有没有一种方法可以让我在任何时候都不去做我的工作 让我具体点。共有12章,每章包含15-20个问题。每个问题都是用文本框、组合框和一些jtabbed面板等组合设计的。如果我解决了一半的工作表,并希望保存以便以后打开,我会打开我的软件。有没有办法做到这一点。问题是每个工作表都有不同的组合框和文本框编号,因此变量也不同使用Netbeans的Java桌面应用程序,java,netbeans,jpanel,jsr296,Java,Netbeans,Jpanel,Jsr296,我正在开发教程软件,帮助解决金融书籍的问题。所以它有点像工作表,包含组合框和格式化文本框。除了一件事外,一切都按我的要求进行。有没有一种方法可以让我在任何时候都不去做我的工作 让我具体点。共有12章,每章包含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);
}
}
公共接口PersistentModel{
布尔保存(OutputStream out)抛出IOException;
布尔加载(InputStream out)抛出IOException;
}
公共接口电子表格扩展PersistentModel{
工作表[]获取工作表();
工作表getWorksheet(int i);//和其他相关的。
}
公共接口工作表扩展PersistentModel{
int id();
元素获取(字符串名称):
元素[]getElements();
公共接口元素扩展PersistentModel{
字符串getName();
T getValue();
布尔设定值(tv);
}
}
Swing使用MVC,您有标准的机制来连接您的模型(保存工作表状态的数据结构)和GUI(可能是Swing),GUI是相同的表示形式。我想这不是问题。我支持这一点。这似乎并不能保证数据库的开销,您可能只需将值写入文件,然后在下次加载时将其解析回程序就可以了。是的。但我假设教程的问题可能来自数据库(例如本地一个derby),然后他将有一个更灵活的应用程序,不仅用于一些硬编码的问题。谢谢你的帮助,但你可以详细说明一些。我应该再告诉你一些。假设我有一个包含5个组合框和5个格式化文本框的jPanel。组合框有一个列表。我在其中三个中输入了一些内容。我想把我的工作留到这里。这样下次我打开的时候。所有这3个组合框和文本框都应该包含我在其中选择并键入的相同想法。没有问题不是来自数据库。它们是根据参考书固定的。所以它们是硬代码,这是一个NETBESE,考虑添加<代码> JSR96标签。谢谢你的回复。我没有完全明白你的意思。你能解释一下吗。我想再次问mt问题。假设我有一个包含5个组合框和5个格式化文本框的jPanel。组合框有一个列表。我在其中三个中输入了一些内容。我想把我的工作留到这里。这样下次我打开的时候。所有这3个组合框和文本框都应该包含我在视图中选择并键入的相同想法--在本例中是JPanel--显示“模型”数据,因此工作表映射到带有一组控件的JPanel。因此,您需要一种从模型中设置jpanel状态并在视图更改时更新模型的方法。这是标准的GUI编程。以上答案是统一模型的建议结构。