Java中使用Draw2D和SWT绘图

http://tech.ddvip.com   2007年07月23日    社区交流

内容摘要:您的选择被限定在了 AWT 或 Swing 上。为了最大限度地减少对第三方工具箱的依赖,或者为了简化绘图基础,可以考虑使用 Draw2D,并编写自己的代码来制图或绘图。

  一旦函数 populateNodesAndEdges() 完成了它的使命,为所有将要绘制的级数创建了 NodeLists 和 EdgeLists,另一个函数 drawDotsAndConnections() 就开始为每个 Node 绘制一个 Dot 图形,并为每个 Edge 绘制一个 PolylineConnection 图形。

  清单 7. drawDotsAndConnections()、drawNode() 和 drawEdge() 函数

private void drawDotsAndConnections(IFigure contents, DirectedGraph graph){
   for (int i = 0; i < graph.nodes.size(); i++) {
     Node node = graph.nodes.getNode(i);
     drawNode(contents, node);
   }
   for (int i = 0; i < graph.edges.size(); i++) {
     Edge edge = graph.edges.getEdge(i);
     drawEdge(contents, edge);
   } 
}
 
private void drawNode(IFigure contents, Node node){
  Dot dotFigure = new Dot();
  node.data = dotFigure;
  int xPos = node.x;
  int yPos = node.y; 
  contents.add(dotFigure);
  contents.setConstraint(dotFigure, new Rectangle(xPos,yPos,-1,-1));
}
 
private void drawEdge(IFigure contents, Edge edge){
   PolylineConnection wireFigure = new PolylineConnection();
 //edge.source is the Node to the left of this edge
   EllipseAnchor sourceAnchor = new EllipseAnchor((Dot)edge.source.data);
 //edge.target is the Node to the right of this edge
 EllipseAnchor targetAnchor = new EllipseAnchor((Dot)edge.target.data);
   wireFigure.setSourceAnchor(sourceAnchor);
   wireFigure.setTargetAnchor(targetAnchor);
   contents.add(wireFigure);   
}

  结束语

  如果您想以图形形式描绘将展示的数据,那么 Draw2D 是一个好工具。可以使用 Draw2D 编写自己的用来绘制图形的 Java 代码,这有助于您将精力集中于缩放代码和绘制代码上,把其他与绘制相关的工作留给 Draw2D 和 SWT。您还可以通过使用所选择的 Draw2D 图形来控制您的图形的外观。Draw2D 简化了绘图的基本步骤,并且可以最大限度地减少您对第三方工具箱的依赖。

责编:豆豆技术应用

正在加载评论...