polygon.java
来自「JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流」· Java 代码 · 共 101 行
JAVA
101 行
/* * PolyGon.java * * Created on April 29, 2005, 6:43 PM */package flow.graph.gui.graph.item.unit;import java.awt.*;import java.awt.event.MouseEvent;/** * * @author hysun */public class PolyGon implements IShape { private Color color; private Stroke stroke; private PointsSet pointsSet; private boolean finalized; private int currX, currY; public PolyGon(Color c, Stroke s, int x, int y) { this(); color = c; stroke = s; pointsSet.addPoint(x, y); currX = x; currY = y; finalized = false; } public PolyGon() { pointsSet = new PointsSet(); } public void processCursorEvent(MouseEvent e, int t) { currX = e.getX(); currY = e.getY(); if (t == IShape.RIGHT_PRESSED) { pointsSet.addPoint(currX, currY); } else if (t == IShape.LEFT_RELEASED) { finalized = true; pointsSet.addPoint(currX, currY); } } public void draw(Graphics2D g) { g.setColor(color); g.setStroke(stroke); if (finalized) { //draw a close polygon int[][] points = pointsSet.getPoints(); if (points == null) return; g.drawPolygon(points[0], points[1], points[0].length); } else { //don't draw a closed polygon int[][] points = pointsSet.getPoints(currX, currY); g.drawPolyline(points[0], points[1], points[0].length); } } public String getShapeData() { int si = 0; for (int i=0; i<DrawingBoard.STROKES.length; i++) { if (stroke == DrawingBoard.STROKES[i]) { si = i; break; } } StringBuffer buffer = new StringBuffer(); buffer.append(color.getRGB()); buffer.append(":"); buffer.append(si); int[][] ps = pointsSet.getPoints(); for (int i=0; i<ps[0].length; i++) { buffer.append(":"); buffer.append(ps[0][i]); buffer.append(":"); buffer.append(ps[1][i]); } return buffer.toString(); } public void setShapeData(String data) throws Exception { String splits[] = data.split(":"); color = new Color(Integer.parseInt(splits[0])); stroke = DrawingBoard.STROKES[Integer.parseInt(splits[1])]; for (int i=2; i<splits.length; i+=2) { pointsSet.addPoint(Integer.parseInt(splits[i]), Integer.parseInt(splits[i+1])); } finalized = true; } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?