设置Java GUI的最佳方法

时间:2009-10-18 22:56:00

标签: java user-interface

我目前正在使用Java作为学校作业开展我的第一个GUI编程项目。我已经非常熟悉在Java中设置类和方法,虽然在GUI编程的介绍中,我不确定如何最好地解决它。

我已经在自己的包中设置了GUI。我应该为每个JPanel开一个新班吗?我附上了截至目前为止GUI的截图。

alt text http://www.aaronmoodie.com/gui.png

对此的任何建议都会非常棒。

4 个答案:

答案 0 :(得分:4)

这取决于你想要达到的目标。例如,我不一定为每个JPanel创建一个单独的类。但是,如果面板是自定义(重写)面板,或包含许多其他组件的面板,或包含大量功能的面板,那么我将它放在它自己的类中。如果有意义,我会尝试按功能分开。我没有特别的理由这样做,除了在写了多个gui之后,这似乎使事情更简单,更清洁。例如,在上面的示例中,不了解您的程序。我可能会创建一个带有jPanel,标签和第一行组件列表的组件,这样我就可以重复使用组件,而不是一遍又一遍地重写逻辑。

答案 1 :(得分:2)

Javabuilders是我最喜欢做简单GUI的方法。您在YAML文件中声明了GUI元素+布局信息的层次结构,这比手动显式创建窗口并将它们添加到其父元素要容易得多。

我通常不会覆盖标准的GUI类。看起来你有一堆JLabel,JButtons,JLists和JSpinner,其中一些包含在JPanels中。您可以从管理其行为的任务中在层次结构(不需要任何自定义类)中正确分离创建所有这些窗口的任务,这通过向特定事件添加EventListeners非常容易您有兴趣管理的组件。

Javabuilders方法很好,因为你可以命名所有组件(这些是作为程序员可用的内部名称,不显示),让它管理窗口创建,然后通过名称以编程方式访问任何感兴趣的组件,而不是而不是必须遍历窗口层次结构。

答案 2 :(得分:1)

确保您了解MVC模式,特别是在Swing的上下文中。

扩展swing容器类(例如JPanel)通常是通过向组件添加可重用的应用程序语义来实现的。

除此之外,扩展(顶级JPanel)也是一个很好的候选类,用于公开管理嵌套组件的“控制”功能。例如,在您的gui中,顶级容器可以是一个扩展类,它具有根据用户操作管理嵌套面板状态的方法。 (但请注意,您不一定要扩展JPanel来管理嵌套组件的状态。)

答案 3 :(得分:0)

如果您使用的是Eclipse,我非常喜欢Jigloo GUI构建器。它是免费的非商业用途,价格相当合理。

我倾向于发现我使用类似Jigloo的东西来可视化地设置我的所有组件并为事件处理程序添加存根,然后在标准Java编辑器中重新打开相同的文件以将代码放在其后面。适合我。