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

📄 diagrameditor.java

📁 一个图形编辑器
💻 JAVA
字号:
/* * Diagram Editor Application * -------------------------- * * *** Java version *** *  * FILE:     Diaged.java * * JDK:      Compatible with JDK 1.5 * * CONTENTS: Definition of class "DiagramEditor" *           and component classes "Controls" and "DrawCanvas" * * AUTHOR:   Zhangyi *  * HISTORY:  Written October 2004 */ import java.awt.* ;import java.applet.* ;import java.util.Vector ;import java.util.Enumeration ;public class DiagramEditor extends Canvas{  private Vector diagrams = new Vector(16) ;  Diagram currentDiagram ;  DiagramEditorControls controls ;  Tool tool ;  Image offscreen ;  public final static int RECTANGLE = 0 ;  public final static int LINE      = 1 ;  public final static int ELLIPSE   = 2 ;  public final static int SELECTION = 3 ;  public String toolNames[] = {"Rectangle", "Line", "Ellipse", "Selection"} ;  public DiagramEditor()  {    setBackground( Color.white ) ;    newDiagram() ;  }  public void setControls( DiagramEditorControls c )  {    controls = c ;  }  public void setTool( int t )  {   switch (t) {      case RECTANGLE:        tool = new WrectangleTool(currentDiagram) ;        break ;      case LINE:        tool = new LineTool(currentDiagram) ;        break ;      case ELLIPSE:        tool = new EllipseTool(currentDiagram) ;        break ;      case SELECTION:        tool = new SelectionTool(currentDiagram) ;        break ;    }    repaint() ;    if (controls != null) {      controls.toolChoice.select(t) ;    }  }  public void paint(Graphics g)  {    update(g) ;  }  public void update(Graphics g)  {    Dimension canvasSize = size() ;    if (offscreen == null) {      offscreen = this.createImage(canvasSize.width, canvasSize.height) ;    }    Graphics og = offscreen.getGraphics() ;    og.setColor(getBackground()) ;    og.fillRect(0, 0, canvasSize.width, canvasSize.height) ;    og.setColor(Color.black) ;    og.drawRect(0, 0, canvasSize.width-1, canvasSize.height-1) ;    og.setColor(Color.blue) ;    currentDiagram.draw(og) ;    tool.draw(og) ;    g.drawImage(offscreen, 0, 0, this) ;  }  public void deleteElements()  {    tool.delete() ;    repaint() ;  }  public void nextDiagram()  {    if ( currentDiagram == diagrams.lastElement() ) {      currentDiagram = (Diagram) diagrams.firstElement() ;    }    else {      int diagramIndex = diagrams.indexOf(currentDiagram) ;      currentDiagram = (Diagram) diagrams.elementAt(diagramIndex + 1) ;    }    setTool(RECTANGLE) ;  }  public void newDiagram()  {    currentDiagram = new Diagram() ;    diagrams.addElement(currentDiagram) ;    setTool(RECTANGLE) ;  }  public boolean mouseDown( Event e, int x, int y )  {    tool.press() ;    repaint() ;    return true ;  }    public boolean mouseDrag( Event e, int x, int y )  {    tool.move( new Point(x,y) ) ;    repaint() ;    return true ;  }  public boolean mouseMove( Event e, int x, int y )  {    tool.move( new Point(x,y) ) ;    repaint() ;    return true ;  }  public boolean mouseUp( Event e, int x, int y )  {    tool.release() ;    repaint() ;    return true ;  }}

⌨️ 快捷键说明

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