基本的Java GUI设计

时间:2011-12-28 22:40:44

标签: java swing user-interface

在我们在课堂上使用的GUI书中,有很多关于如何用Java制作图形用户界面的例子。这么多的例子,我对于在涉及大型应用程序时应该使用哪一个而感到非常困惑。

所以我见过例子

  • 其中主要类扩展JFrame
  • JFrame方法
  • 中创建main对象的位置
  • 主类扩展JFrame并实现ActionEvent接口
  • 其中监听器类在主类
  • 中声明

当然,我可以使用所有这些,但是现在,由于我没有任何经验,我看不到使用其中任何一个的好处。实际上其中一个是正确的方法,还是取决于我的想法?

谢谢!

4 个答案:

答案 0 :(得分:6)

“是A”还是“有A”?这是在考虑扩展课程时应该问的问题。如果新类“是A”框架,则扩展框架,但如果该类只需要对框架的引用,不扩展

事实上,如果需要自定义组件 ,请扩展JComponentJPanel,然后将其添加到框架中,..小程序,窗口,JInternalFrame,对话框,布局约束,拆分窗格的一部分..

监听

至于听众。不是在单if方法中遍历巨大的else / actionPerformed()结构来确定所需的操作,而是更优化:

  1. 为需要它的每个控件创建一个监听器。
  2. 创建可用于多个控件的AbstractAction实例('复制'按钮,菜单项等)。
  3. 摘要

    所以(通常)为:

    1. JFrame,不要延长。
    2. 听众,根据需要创建和添加。

答案 1 :(得分:2)

老实说,这取决于具体情况。编码时的一个基本规则是“编写抽象类或接口”。

因此,简而言之,有一个类扩展(或实现)JFrame(或任何接口或类)和/或让一个人使用ActionListener做同样的事情。

所有这些都与代码的可维护性,灵活性和清洁性有关。

答案 2 :(得分:0)

标准方法:在方法main中使用EventQueue,创建主窗体。在这种情况下,您的所有操作都将是异步的

答案 3 :(得分:0)

  

其中主类扩展了JFrame

  • 主calss不必扩展JFrame。如果不是,你应该创建一个JFrame对象,就像你使用任何其他类
  • 一样
  

在主方法

中创建JFrame对象
  • 如果MainClass扩展它在c'tor内创建的JFrame(在super()中)。