javaswing应用程序的设计问题
注:这是我参加的一个秋千课程 我的任务是制作一个简单的图形包(画圆、正方形等) 我考虑使用多个对话框来输入形状参数,即: 点有x,y 圆有x,y,半径 矩形有x、y、宽度和高度 等等 我在考虑用X,Y创建一个超级对话框类,并扩展它以允许宽度、高度或半径等 例如,rectangleDialog将使用所需的其他参数调用超级构造函数: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
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约束。。