10
|
Henning · 技术社区 · 15 年前 |
1
15
这是Java编程的一个领域,但文档化程度很低。正如您所提到的,从JFrame或JDialog扩展来开发GUI不是一个好的设计实践,但是您可以在示例代码中看到它。 JSR296是一个有用的起点,但它的体系结构存在一些严重的问题。我确实使用JSR296,但我有自己的风格,并且始终必须解决框架设计引入的问题。 我一直认为应该有一个讨论小组/维基/一些关注这个话题的东西。到目前为止,我发现用于各种富客户机库的listserv很有用,但并不全面。在我空闲的时候,考虑一下开始吧:-) 因此,我无法为构建swing应用程序的最佳实践提供任何明确的资源。但我可以给你们一些我发现我反复使用的工具箱和概念的指针。也许这些会对你有用。此外,如果有足够多的人对讨论最佳实践、共享代码等感兴趣。。。我有兴趣参与其中。 首先,如果要进行Swing开发,请使用一些绝对重要的库:
编辑 GUTS 在我们的项目中(这是一个基于Guice的应用程序框架——它从JSR296开始,但现在几乎没有什么共同点)。GUTS仍然是一个年轻的项目,但如果您正在考虑框架,那么值得一看。
所以这些是我书中的关键,绝对必须的图书馆。 现在有一些概念:
B.视图不是JPanel的子类。相反,我遵循JGoodies启发的技术,将视图视为创建JPanel的构建器。基本模式是:
C.使用操作而不是事件处理程序。JSR296实际上在使操作易于创建和使用方面做得很好。 D.在EDT上进行长时间运行操作(即使是需要100毫秒的操作)。JSR296通过它的任务支持使这一点变得相当容易——但在296的任务系统中,当涉及到异常处理时,有许多缺陷。如果属性更改导致长时间运行的事件,请确保仔细考虑这些更改将在哪个线程上发生。使用任务对开发方式来说是一个很大的改变,但对于任何真正的Swing应用程序来说,它都是一个非常重要的领域——花点时间来了解它。
我认为这就足够了——这是一个高度复杂的问题,有很多细微差别。在过去的7到8年里,我一直在为那些不起作用的事情绞尽脑汁,我也在不断地寻找更好的方法来做那些对我来说很好的事情。 |
2
1
|
3
1
|
4
0
你可以试试这个 Spring Rich Client project . 我对spring投资组合的其他部分有很好的经验。 |
5
0
http://www.macs.hw.ac.uk/guidebook/?name=Using%20The%20GUI&page=1 我不确定我是否喜欢控制器本身实现ActionListener的想法——另一方面,如果不喜欢,我需要一个额外的类来实现这一点,这同样需要了解控制器并告诉他一些事情。。。 也许问题在于,Swing组件如何与控制器通信有太多可能的选择,而乍一看没有一个是真正“正确的”。。。 |
Ummayair Ahmad · 如何从另一个类添加到JPanel 2 年前 |
Klopo22 · 如何将插入符号移动到另一个JTextField 2 年前 |
Kirito · 如何将焦点设置为图像或标签?[Java Swing] 2 年前 |
Didi1995 · 在swing java中传递文件路径 2 年前 |
dl784 · Java Swing登录窗口未关闭 2 年前 |
user16911064 · 在JTable中创建组 2 年前 |
Jessie Smetts · 它不会划清界限 2 年前 |
shrimpwidget · 如何对齐并排面板,Java swing 2 年前 |