Redian新闻
>
请教GUI程序的save/load功能的实现
avatar
请教GUI程序的save/load功能的实现# Java - 爪哇娇娃
j*n
1
毛驴花了这么多时间,写了这么多帖子,从理论到实际论述了新人对游戏的重要,
aoede居然敢抹杀毛驴的努力。
现在事实在这里,候选版主都接受毛驴的具体建议了。你aoede呢?你到底干了什么实
际的事情?
我只知道你无耻地把大家反对的配对硬塞进了决赛,可耻不?
olajuwon,你也算从犯,你不改过自新,争取大家对你的宽大,你也会随着小圈子一起
灭亡。
avatar
f*0
2
新手在学习编程中。。。
现在在学习开发一个实用程序,用得是netbeans ide。
一开始直接使用了subclass of JFrame作为主界面, 以subclass (of JDialog) 作为
次界面来获得用户使用时的输入的状态信息。程序运行时,make a new instance of
the "subclass(of JDialog)", 获得用户输入的状态信息,然后用objectOutputStream
来save保存了这个instance。 再load这个object。
实践中,在load时获得了如下Exception: java.io.WriteAbortedException: writing
aborted; java.io.NotSerializableException: javax.swing.GroupLayout
请教了Google大师,得到的结论是,我不应该储存serialize GUI(包括他们的子类)
,而是应该用Java Preferences 或 Java properties来记录储存状态信息。然后load
使用时,再赋值到GUI 界面中。
我现在的理解是这样的,这些GUI程序提供的纯粹的是一个UI,实际的数据处理逻辑是
分开的(不是像我自己一开始想的那样直接用这些GUI的子类来实现数据处理逻辑)。
不知道这个想法对不对?
这个是不是就是Model View Controller 的最基本的应用啊?
另外,这种save/load功能实现是不是应该通用如下
save: 1)把GUI的状态信息储存 2)把用户信息储存
load: 1)make a new instance of GUI, 打开储存的GUI状态信息,赋值; 2) load
用户信息
敬请方家指教。谢谢。
avatar
j*n
3
建议aoede和olajuwon都参与到wywxm组织的陪赤脚打牌活动里来,为牌室发展做点实际
的贡献。
avatar
J*n
4
这跟MVC没关系
avatar
s*e
5
这个问题是因为你企图save JDialog, JDialog本身serializable,但是你在JDialog
里面用了GroupLayout, 这个东西不能serialize。所以凡是GUI的东西最好不要直接
save,里面结构太复杂,说不定什么东西就不work.save数据,然后GUI启动以后load数
据再填进GUI里面。

objectOutputStream
writing
load

【在 f*****0 的大作中提到】
: 新手在学习编程中。。。
: 现在在学习开发一个实用程序,用得是netbeans ide。
: 一开始直接使用了subclass of JFrame作为主界面, 以subclass (of JDialog) 作为
: 次界面来获得用户使用时的输入的状态信息。程序运行时,make a new instance of
: the "subclass(of JDialog)", 获得用户输入的状态信息,然后用objectOutputStream
: 来save保存了这个instance。 再load这个object。
: 实践中,在load时获得了如下Exception: java.io.WriteAbortedException: writing
: aborted; java.io.NotSerializableException: javax.swing.GroupLayout
: 请教了Google大师,得到的结论是,我不应该储存serialize GUI(包括他们的子类)
: ,而是应该用Java Preferences 或 Java properties来记录储存状态信息。然后load

avatar
f*0
6
如果很充分的使用SRP,GUI部分是不是可以算作View,数据收集的部分算是controller
,而核心的数据处理算是model?

【在 J*******n 的大作中提到】
: 这跟MVC没关系
avatar
f*0
7
感谢指点。 这个确实是我Google到的最初的解释。
我现想确认的是如你所说的是不是一个比较普适的模式:
两个模块物:
(Object 1) gui(包含可serializable 的layout)。
(Object 2) 数据。
save时保存两个objects,load时再load两个objects. (相对于我一开始的直接把数据逻
辑放到JDialog的做法)
还有一个问题,关于layout,如果要能够serialize,又比较好用,类似于客户信息表
栏比较多,相对分散,什么layout比较好?我看到了GridBagLayout.不知道对否?

JDialog

【在 s*****e 的大作中提到】
: 这个问题是因为你企图save JDialog, JDialog本身serializable,但是你在JDialog
: 里面用了GroupLayout, 这个东西不能serialize。所以凡是GUI的东西最好不要直接
: save,里面结构太复杂,说不定什么东西就不work.save数据,然后GUI启动以后load数
: 据再填进GUI里面。
:
: objectOutputStream
: writing
: load

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。