在Java中使用GUI继承GUI(图形用户界面)

时间:2010-03-25 09:52:43

标签: java


我使用GUI(图形用户界面)进行继承

让我解释一下例如我制作了超级类,它是车辆,而子类是汽车,所以继承的代码将是

公共类汽车扩展车辆

然后我想将类Car构建为JFrame,如

public class Car extends JFrame实现了ActionListener {

所以问题是我无法将两个代码放在同一个类中,我需要这样做。

有人帮助我。提前谢谢

我希望问题清楚

3 个答案:

答案 0 :(得分:1)

考虑以下示例:

class A extends B

在继承之前,请三思而后A IS A KIND OF B,现在告诉我CAR IS A TYPE OF FRAME?没有??然后不要继承。

创建一个JFrame,然后添加汽车......


更好的解决方案: 将Car划分为模型 - 视图 - 控制器类..并将Car的视图添加到屏幕(class Sceen extends JFrame

现在你的Car的MVC将继承车辆的MVC。现在有意义:CAR IS A VEHICLE.

更好:不是将汽车的视图添加到屏幕(AGGREGATION),而是在Screen中使用一个函数来获取Car的视图对象并将其绘制在Screen中(这是一个{ {1}})。从而实现低耦合。!

答案 1 :(得分:1)

Java不允许设计多个超类(并且有很好的理由。)

然而,没有什么可以阻止你让Vehichle扩展JComponent(*), 和汽车延伸车辆。

public class Car extends Vehicle {
...
}

*)JComponent可能是基类的更好选择,因为JFrame是一个相当特殊的gui元素。可以将JComponent添加到JFrame中。

此外,此设计假设车辆(等)的主要目的是a 车辆的图形表示。另外,您可以考虑在VehicleViewer和Vehicle中划分行为,例如,如果车辆实际上代表真实车辆,则您从数据库中加载/存储车辆等。

答案 2 :(得分:0)

将Car类重命名为CarView或使用其完全限定名称引用其他Car类,例如: myapp.domain.Car而不仅仅是Car。