GEF实战——图形

图形是可以依次嵌套包含在画布中的。图形的可视部分是由其叠置顺序和嵌套的图形所决定的。每一个图形的绘制被划分为几步,绘制其客户区(Clint Area),绘制其嵌套的子图形和它的边框。Draw2D已经包括了一些常用的图像,比如直线,矩形,多边形,椭圆等等。复杂的图像可以嵌套一些简单的图像构成,也可以自己实现其绘制行为完成。

1.IFigure

对于一个可以呈现在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)

 

 

posted @ 2012-06-03 18:55  Coretek_小翼  阅读(371)  评论(0)    收藏  举报