Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Netbeans的Java桌面应用程序_Java_Netbeans_Jpanel_Jsr296 - Fatal编程技术网

使用Netbeans的Java桌面应用程序

使用Netbeans的Java桌面应用程序,java,netbeans,jpanel,jsr296,Java,Netbeans,Jpanel,Jsr296,我正在开发教程软件,帮助解决金融书籍的问题。所以它有点像工作表,包含组合框和格式化文本框。除了一件事外,一切都按我的要求进行。有没有一种方法可以让我在任何时候都不去做我的工作 让我具体点。共有12章,每章包含15-20个问题。每个问题都是用文本框、组合框和一些jtabbed面板等组合设计的。如果我解决了一半的工作表,并希望保存以便以后打开,我会打开我的软件。有没有办法做到这一点。问题是每个工作表都有不同的组合框和文本框编号,因此变量也不同 提前感谢为了保存此桌面应用程序的状态,您必须有一个持久存

我正在开发教程软件,帮助解决金融书籍的问题。所以它有点像工作表,包含组合框和格式化文本框。除了一件事外,一切都按我的要求进行。有没有一种方法可以让我在任何时候都不去做我的工作

让我具体点。共有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编程。以上答案是统一模型的建议结构。