注意:这是我正在参加的 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/