⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arrowobj.java

📁 基于jxta的局域网P2P文件共享,可以实现局域网中的文件p2p共享,实现文件快速传输及交流
💻 JAVA
字号:
package connex.plugins.whiteboard;

import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Color;

import desl.graphic.geom.Arrow2D;
import java.awt.RenderingHints;
import java.awt.BasicStroke;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ArrowObj
    extends ShapeObj {
  public void setGraphic(Graphics2D g2D) {

      super.setGraphic(g2D);
      lastS= new Point();
      lastE= new Point();
  }
  public void draw() {
    if (start == null || end == null) {
      return;
    }

    draw(start, end);
  }

  public void draw(Point start, Point end) {

    this.start = start;
    this.end = end;
    g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                         RenderingHints.VALUE_ANTIALIAS_ON);
    if (select != 0) {
      drawSelection(true, lastS, lastE);
      drawSelection(false, start, end);

    }

    else {
      Arrow2D ar = new Arrow2D(start, end);
      g2D.setColor(drawColor);

      g2D.draw(ar.tail);
      g2D.fill(ar.head);

      g2D.fill(ar.head2);

    }
    lastS = new Point(start);
    lastE = new Point(end);
  }

  /**
   *
   * @param xor boolean
   * @param pt1 Point
   * @param pt2 Point
   */
  protected void drawSelection(boolean xor, Point pt1, Point pt2) {
    BasicStroke stroke = new BasicStroke(1.0f);
    float dash1[] = {
        2.0f};
    BasicStroke dashed = new BasicStroke(1.0f,
                                         BasicStroke.CAP_BUTT,
                                         BasicStroke.JOIN_MITER,
                                         10.0f, dash1, 0.0f);
    if (pt1.x != 0 && pt1.y != 0 ) {
      Arrow2D ar = new Arrow2D(pt1, pt2);

      g2D.setStroke(dashed);

      g2D.setColor(Color.MAGENTA);
      if (xor) {
        if (!lastE.equals(end) || !lastS.equals(start)) {
          g2D.setXORMode(Color.white);
        }
      }

      g2D.fill(ar.head);
      g2D.draw(ar.tail);
      g2D.fill(ar.head2);

      g2D.fillRect(pt1.x - 2, pt1.y - 2, 5, 5);
      g2D.fillRect(pt2.x - 2, pt2.y - 2, 5, 5);
    }
    g2D.setStroke(stroke);
  }

  /**
   *
   * @param pt Point
   * @return boolean
   */
  public boolean SelectShape(Point pt) {
    if (start == null) {
      return false;
    }
    double px = pt.x;
    double py = pt.y;

    if (Math.abs(px - start.x) < 5 && Math.abs(py - start.y) < 5) {
      this.select = 1;

      return true;
    }
    if (Math.abs(px - end.x) < 5 && Math.abs(py - end.y) < 5) {
      select = 2;

      return true;
    }

    if (new Arrow2D(start, end).contains(pt)) {

      select = 3;
      return true;
    }
    return false;
  }

  public void move(Point pt, Point pt2) {
    int tmpx = pt.x - pt2.x;
    int tmpy = pt.y - pt2.y;

    if (select == 1) {
      drawSelection(true, start, end);
      start.setLocation(pt);
      drawSelection(false, start, end);
    }
    if (select == 2) {
      drawSelection(true, start, end);
      end.setLocation(pt);
      drawSelection(false, start, end);
    }

    if (select == 3) {
      drawSelection(true, start, end);
      start.setLocation(start.x + tmpx, start.y + tmpy);
      end.setLocation(end.x + tmpx, end.y + tmpy);
      drawSelection(false, start, end);
    }

  }

  public void fill(Color fillColor) {
    this.drawColor = fillColor;
    draw();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -