Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaswing应用程序的设计问题_Java_Oop_Swing - Fatal编程技术网

javaswing应用程序的设计问题

javaswing应用程序的设计问题,java,oop,swing,Java,Oop,Swing,注:这是我参加的一个秋千课程 我的任务是制作一个简单的图形包(画圆、正方形等) 我考虑使用多个对话框来输入形状参数,即: 点有x,y 圆有x,y,半径 矩形有x、y、宽度和高度 等等 我在考虑用X,Y创建一个超级对话框类,并扩展它以允许宽度、高度或半径等 例如,rectangleDialog将使用所需的其他参数调用超级构造函数: public abstract class XYDialog extends JFrame { public XYDialog(PARAMETERS ... pa

注:这是我参加的一个秋千课程

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

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

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

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

例如,rectangleDialog将使用所需的其他参数调用超级构造函数:

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);
  }
}
然后,超级类负责构建GUI

这似乎是一个合理的方法吗?这有意义吗


谢谢

是的,我认为这是一个很好的解决方案。但是,如前所述,重新考虑类的命名。如果扩展JFrame,请将其称为某物Frame。如果参数是普通类,则不应使用大写字母


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

文本消息有一个完全不同的对话框Swing类,因此不应该使用这些名称。弄清楚你是真的想要一个Swing对话框,还是想要在其中绘制它作为一个额外的建议,我会使用
super(PARAMETERS.WIDTH | PARAMETERS.HEIGHT)
而不是一个数量可变的参数。“我还建议扩展JPanel而不是JFrame,并让安装这些类的人决定是将它们放在JFrame还是JDialog中。“。或边框布局中的JopOptions窗格、JToolBar或WEST约束。。