在矩形类中给出两个整数变量'a'和'b',你如何绘制一个矩形? 我是smalltalk的新手,我正在研究它。 谢谢!
答案 0 :(得分:6)
Squeak使用 Morphic 作为默认用户界面。所以最简单的方法是创建一个 Morph :
RectangleMorph new
extent: 300@200;
openInWorld
一次评估所有三行。这会创建一个新的RectangleMorph
实例,将其范围设置为从Point
和300
创建的200
(通过将消息@
发送到300
参数为200
),并向其发送openInWorld
消息,使其显示在世界中。它将在左上角的屏幕角落打开。我们可以使用另一个position:
参数发送Point
消息,但您可以轻松地用鼠标指针抓住它并随意移动它。
在您的课程中,您可以使用a@b
创建范围点(假设a
,b
是矩形的宽度和高度(以像素为单位)。
Morphic 非常好,因为它可以创建可以交互操作的真实对象,例如:通过cmd单击以显示 Halo 。如果你不想要,你也可以直接在屏幕上画画。 E.g:
Display fill: (0@0 extent: 300@200) fillColor: Color red.
...其中Display
是一个全局 Form 实例(包含 Bitmap ),引用整个Squeak显示。但由于该表达式只是将像素放在屏幕上,因此它们将被快速覆盖。相反, Morphs 知道如何在需要时重绘自己。
还可以创建自己的 Morph 子类并实现自定义drawOn:
方法。但对于像显示矩形这样简单的东西来说,这样就太过分了。