java - java SWING应用程序的设计问题

标签 java oop swing

注意:这是我正在参加的 SWING 类(class)。

我的任务是制作一个简单的图形包(绘制圆形、正方形等)。

我正在考虑使用多个对话框来输入形状参数,即:

点有 x,y 圆有 x,y,半径 矩形有 x,y,宽度,高度 等等

我正在考虑使用 X、Y 创建一个 super 对话框类并扩展它以允许宽度、高度或半径等。

例如,矩形对话框将使用所需的附加参数调用 super 构造函数:

public abstract class XYDialog extends JFrame {
   public XYDialog(PARAMETERS ... params) {
       // build the dialog by iterating through PARAMETERS
   }
}


public class RectangleDialog extends XYDialog {
  public RectangleDialog() {
    super(PARAMETERS.WIDTH, PARAMETERS.HEIGHT);
  }
}

然后父类(super class)负责构建GUI

这看起来是一个合理的方法吗?这有道理吗?

谢谢

最佳答案

是的,我认为这是一个很好的解决方案。但是,如前所述,请重新考虑类的命名。如果扩展 JFrame,请将其称为 SomethingFrame。如果 PARAMETERS 是普通类,则不应大写。

我还建议扩展 JPanel 而不是 JFrame,并让实例化这些类的人决定是将它们放入 JFrame 还是 JDialog。 JFrame 创建一个全新的窗口,并且您的应用程序通常只有一个主窗口,而对话框和面板是动态创建的。

关于java - java SWING应用程序的设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910493/

相关文章:

java - 在不使用 instanceof 的情况下获取异常是否为 instanceof 的复杂方法

java - 组织.hibernate.MappingException : Foreign key XXX must have same number of columns as the referenced primary key YYY

oop - 抽象和多态有什么区别

c - 了解 OOPC,我做对了吗?

java - 如何为 JTree 中的特定节点调用 DefaultTreeCellRenderer

java - JDBC 连接持久性问题

java - 在 Ubuntu 15.04 上从 NetBeans 8.0.2 卸载或禁用 JRebel

java - 如何在 Apache POI 中调整图像环绕样式

java - 封装与抽象?

java - 如何使用 jbutton 清除 jtable 中的数据