【发布时间】:2011-01-21 04:39:15
【问题描述】:
是否有解释摇摆 GUI 设计的资源?比如最佳实践等。
【问题讨论】:
标签: java user-interface swing
是否有解释摇摆 GUI 设计的资源?比如最佳实践等。
【问题讨论】:
标签: java user-interface swing
不再完全遵循设计指南,因为 Swing 可以在许多不同的平台上工作。 Sun 很久以前写过一些东西,并且从未更改过它们,所以如果您认为它会有所帮助,我会说阅读它。这里有一些关于swing开发的实用知识。
【讨论】:
我已经写了一个推荐列表here。
【讨论】:
在较大的摇摆项目中,我会像这样对应用程序进行分区:
每个 GUI 元素都有一个类,如 JPanel、JDialog 等。
为每个屏幕使用单独的包,尤其是在您必须实现自定义 TableModel 或其他复杂数据结构时
不要使用匿名类和内部类,而是实现一个 ActionListener 并在其中检查 ActionEvent.getActionCommand()。
编辑:如果您更想寻找教程或介绍,您可以开始 here
【讨论】:
也许不是你想要的,但看看Java Look and Feel Design Guidelines不会有什么坏处
【讨论】:
您可以在Professional Java JDK6 Edition 的第 4 章中找到一些最佳实践
【讨论】:
我也有一些指导方针:
1) 使用 Maven 并将您的应用程序分成模块(视图、控制器、服务、持久性、实用程序、模型)。确保只将 Swing 组件和依赖项放在视图包中,因此如果有一天您想更改视图框架,您可以只重新实现视图模块,但您可以保留业务逻辑、控制器等……原封不动。
2) 使用 GridBagLayout,因为它非常灵活且最可配置
3) 使用 SwingTemplate(如果你愿意,我可以给你一个例子)
4) 创建一个 SwingFactory 来创建组件,这样您就可以减少代码行数,因为 JFrame 或者打算成为非常大的类...
5) 让视图(JFrame、JDialog 等)对控制器有依赖。仅在 JFrame 上进行验证输入,然后将参数传递给控制器。他们将决定触发哪些业务逻辑(服务、处理器等)。
6) 使用大量枚举
7) 始终考虑您的应用程序可以如何更改或如何维护。因此,始终针对接口或抽象类使用代码。 (思考抽象)
8) 在您的应用程序中使用设计模式,因为它们为您的代码提供了舒适性和可维护性。例如,制作你所有的控制器、服务、dao 的单例类。制作工厂(swingfactory,...),这样您就必须一遍又一遍地编写更少的代码......使用观察者,以便可以自动处理操作。
9) 测试您的应用程序:选择:TDD(测试驱动设计)或 DDT(设计驱动测试)
10) 永远不要在 JFrames 上放置任何业务逻辑,因为它很丑,而且它的模型-视图-控制器设计也不是很好。 JFrame 并不关心数据的处理方式。
希望对您有所帮助。
【讨论】: