2 回答
TA贡献1817条经验 获得超6个赞
我希望你能理解 :D
首先它调用public static void main(String args[])
然后main创建类的新实例CanvasExample并调用它的构造函数CanvasExample()
,该构造函数创建Frame名为“f”的类的新实例并调用类的构造函数,Frame它将该框架的标题设置为“画布示例”
。CanvasExample()它创建的构造函数行并将类的新实例添加MyCanvas到Frame名为“f”
的构造函数的第三行的实例CanvasExample()它只是将“f”的布局设置null
为构造函数的第四行CanvasExample()它将“f”的大小设置为 400x400
构造函数的第五行CanvasExample()它只是显示“f”筛选(以便您可以看到它)
并在创建类的新实例时CanvasExample()返回到构造函数的末尾mainMyCanvas被称为它的构造和它是构造函数中设置背景“Color.GRAY”和大小的它安全工程师和所有的MyCanvas()构造函数
,每次当再次渲染“F”需要它调用方法paint(Graphics g)类的实例MyCanvas位该实例较小比“f”,所以你可以看到白色后面的
白色是“f”的背景
我想这就是你所要求的。
祝你今天过得愉快
TA贡献1863条经验 获得超2个赞
它是
Canvas类的一个实例。在 Java 中new是用于创建对象(给定类的实例)的关键字。话虽如此 -new Canvas()创建Canvas类的新实例。类名后面的括号表示构造函数——当你想创建一个给定类型的对象时被调用的代码块。你得到了椭圆形,因为这个
paint方法被调用了。它只是没有从您的代码中明确调用。该paint方法将始终作为所谓的“回调机制”被触发。这个方法属于Container类。我建议阅读有关它的文档。的paint在方法MyCanvas类覆盖了paint从方法Canvas。在扩展Canvas类和覆盖paint方法时,您应该始终在方法的开头调用 super 方法。您可以在我已经包含在这一点的链接中了解原因。与第 1 点一样 -
new CanvasExample()创建MyCanvas类的新实例。更具体地说,它调用构造函数 (public CanvasExample() { ... })。在您提供的代码中, CanvasExample 的构造函数创建类型的新对象Frame并调用其中的一些方法。这些方法之一是add并且它是由类Frame从其超类继承的-Container。
正如Java awt API 所解释的,该add方法:将指定的组件附加到此容器的末尾。
添加回答
举报
