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

📄 textobj.java

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

import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Color;
import java.awt.RenderingHints;
import desl.graphic.geom.Arrow2D;
import java.awt.font.TextLayout;
import java.awt.Font;
import java.awt.font.FontRenderContext;
import javax.swing.JFrame;
import java.awt.Rectangle;
import java.awt.BasicStroke;
import java.awt.Paint;

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

  private String txt;
  private Font font;

  private int w, h;

  /**
   * @directed*/
  private transient TextDialog td;
  public void setGraphic(Graphics2D g2D) {

    super.setGraphic(g2D);
    lastS= new Point();
    lastE= new Point();
  }
  public TextObj() {

  }

  public void draw() {
    if (start == null) {
      return;
    }

    if (select != 0) {
      this.drawSelection();
    }
    else {
      g2D.setColor(drawColor);
      TextLayout t = new TextLayout(txt, font, new FontRenderContext(null, false, false));

      t.draw(g2D, (float) start.x, (float) start.y);

      w = (int) t.getBounds().getWidth();
      h = (int) t.getBounds().getHeight();
    }
    lastS = new Point(start); //.setLocation(this.start);
  }

  public void draw(Point start, Point end) {
    this.start = start;

    g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    if (td == null) {
      td = new TextDialog(null, "Text", start);

      td.setLocation(start.x, start.y);
      td.setVisible(true);
    }
    if (td.getText().equals("")) {
      return;
    }
    this.font = td.getFont();
    this.txt = td.getText();
    draw();

  }

  protected void drawSelection() {
    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);

    g2D.setStroke(dashed);
    /*remove Shadow*/

    if (lastS.x!=0&&lastS.y!=0) {

        System.out.println(lastS.equals(start));
        moveText(lastS, true);

    }

    moveText(start, false);
    g2D.setStroke(stroke);
  }

  private void moveText(Point pt, boolean xor) {
    TextLayout t;
    g2D.setColor(Color.gray);
    if (xor) {
      g2D.setXORMode(Color.white);
    }

    g2D.drawRect(pt.x - 2, pt.y - h - (h / 4), w + 6, h + (h / 2));
    t = new TextLayout(txt, font, new FontRenderContext(null, false, false));

    t.draw(g2D, (float) pt.x, (float) pt.y);

  }

  public void fill(Color fillColor) {
    drawColor = fillColor;
    g2D.setColor(fillColor);
    draw();

  }

  public boolean SelectShape(Point pt) {
    Rectangle r = new Rectangle(start.x, start.y - h + 1, w, h);

    if (r.contains(pt)) {
      select = 1;
      r = null;
      return true;
    }
    return false;

  }

  public void move(Point pt, Point pt2) {

    int tmpx = pt.x - pt2.x;
    int tmpy = pt.y - pt2.y;
    start.x += tmpx;
    start.y += tmpy;
    draw();

  }

}

⌨️ 快捷键说明

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