图形是可以依次嵌套包含在画布中的。图形的可视部分是由其叠置顺序和嵌套的图形所决定的。每一个图形的绘制被划分为几步,绘制其客户区(Clint Area),绘制其嵌套的子图形和它的边框。Draw2D已经包括了一些常用的图像,比如直线,矩形,多边形,椭圆等等。复杂的图像可以嵌套一些简单的图像构成,也可以自己实现其绘制行为完成。
对于一个可以呈现在Canvas上的对象,它必须实现IFigure接口。这个接口包含一些不同的方法用于点击测试,定位,嵌套子图形,注册监听器。当用户与图形进行交互时,有一些监听器和相应的方法提供了这样的功能。
addFocusListener(FocusListener)
addKeyListener(KeyListener)
addMouseListener(MouseListener)
addMouseMotionListener(MouseMotionListener)
containsPoint(Point)
findFigureAt(Point)
hasFocus()
图形可以包含其它子图形,有一些相应的监听器和方法控制和传递这样的继承关系。
addAncestorListener(AncestorListener)
addCoordinateListener(CoordinateListener)
addFigureListener(FigureListener)
addLayoutListener(LayoutListener)
add(IFigure)
getChildren()
getParent()
isCoordinateSystem()
useLocalCoordinates()
最后,
IFigure
提供了一些基本属性供访问。
getBackgroundColor()
getBorder()
getBounds()
getClientArea()
getFont()
getForegroundColor()
getToolTip()
isOpaque()
isVisible()
setBackgroundColor(Color)
setBorder(Border)
setBounds(Rectangle)
setFont(Font)
setForegroundColor(Color)
setOpaque(boolean)