什么是最佳的Java GUI方法,易于维护和增强?

时间:2011-07-01 10:04:13

标签: java swing user-interface jtable

我需要有关如何重写java GUI的建议。最终目标更容易维护&提高。

我构建的是一个Java Applet Client接口,其行为和行为类似于Eclipse。开发人员可以在不使用单行代码(拖放)的情况下设计数据输入表单,并定义其属性。这部分很好用。但是,我留下了超过40,000行代码,这些代码很难维护。

每次发生错误或新的增强功能时,我通常都无法以更直接的方式进行编程。超过一半的时间,我需要解决问题,这会增加代码行。

考虑:

-Java Web Applet(因为它可以在安装了J2RE的任何浏览器上运行)

在慢机上运行

- 部署大约200个节点并且不断增长

我目前遇到的问题:

-Listeners到处都是。有时在element.AddListener(new listener ..)中。有时是在类之外,可能在另一个包含所有其余侦听器的包中。 问题:将所有监听器放在另一个包中总是好主意吗?如果那样的话,我就不能用“这个”。得到我需要的参考。

-JTable这对我来说是一个杀手:(我Cannot access the Jtable column data after set invisible上遇到的问题仍然存在。想象一下,我有一个带有3列的JTable。第一列是dropDown,第二列是文本字段。每当一个值从下拉列表中选择,我需要基于所选值,并更新到第二列和第三列。问题是,如果用户单击并且非常快速地单击其他行,它将更新为所在的列错误的一行。

- 当前程序编码的意思是单线程。每当用户与服务器端建立http连接,读取文件,编写文件等时,我都需要将其作为异步进程,因此它感觉像“程序挂起”。这样做的最佳方式是什么?

真的很感激这里的帮助!谢谢!

3 个答案:

答案 0 :(得分:0)

使用dsl for gui:

  • swinghtmltemplate
  • swixml
  • YAML

还有一些

这将删除描述侦听器的需要,允许以dsl方式绑定

答案 1 :(得分:0)

这里有很多问题,我不知道从哪里开始,但我可以同情你这一个。除非你有一个经验丰富的团队已经经历了Swing应用程序开发的痛苦,否则很快就会失去控制和无法管理。

在您重新编写项目之前,我将首先定义一些简单的开发标准。像包结构和听众一样。我还建议将应用程序拆分为单元测试模块或子项目。

另外,问问自己是否真的需要重新编写应用程序,或者只是需要一些TLC。作为一名顾问和IT总监,我看到开发人员总是希望重新编写应用程序,因为他们已经学到了新的东西,或者认为它不符合标准。当他们来找我告诉我它是垃圾并且需要重新编写时,我通常会将它们发回去,并要求他们提出替代解决方案来重写和每个解决方案的影响,包括 - 什么都不做。在很多情况下,我们根本没有编写应用程序。

[UPDATE] 最后,如果您要重写,我会使用Domain Driven DesignMVC方法。 是的,我说过桌面应用程序的MVC!。我们在这些方法上取得了巨大成功。它保持了良好的关注分离,使事情易于重复使用。它还提供了轻松切换表示层的结构。最重要的是,单元测试很容易,任何了解MVC的开发人员都可以在不知道细节的情况下理解项目的基础知识。

我还有一些想法,但我现在就把它留在那里。 ;)

答案 2 :(得分:-1)

为什么不重用eclipse框架来构建自己的gui而不是在Swing中从头开始编写?