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

📄 drawfigurepanel.java

📁 Java实例入门
💻 JAVA
字号:
package drawfigure;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class DrawFigurePanel extends JPanel {  public Vector figures = new Vector(10,10);  public Figure figure = null;  public DrawFigurePanel() {    try {      jbInit();    }    catch(Exception ex) {      ex.printStackTrace();    }  }  void jbInit() throws Exception {    this.setBackground(UIManager.getColor("window"));    this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {      public void mouseDragged(MouseEvent e) {        this_mouseDragged(e);      }    });    this.addMouseListener(new java.awt.event.MouseAdapter() {      public void mouseClicked(MouseEvent e) {        this_mouseClicked(e);      }      public void mousePressed(MouseEvent e) {        this_mousePressed(e);      }      public void mouseReleased(MouseEvent e) {        this_mouseReleased(e);      }    });  }  void this_mouseClicked(MouseEvent e) {    if(figure == null)      return;    Graphics g = this.getGraphics() ;    g.setXORMode(Color.green);    if(figure instanceof LineFigure){      LineFigure lineFigure = (LineFigure)figure;      lineFigure.draw(g);      figures.add(lineFigure.clone());    }    if(figure instanceof RectangleFigure){      RectangleFigure rectangleFigure = (RectangleFigure)figure;      rectangleFigure.draw(g);      figures.add(rectangleFigure.clone());    }    if(figure instanceof OvalFigure){      OvalFigure ovalFigure = (OvalFigure)figure;      ovalFigure.draw(g);      figures.add(ovalFigure.clone());    }  }  void this_mouseDragged(MouseEvent e) {    if(figure == null)      return;    Graphics g = this.getGraphics();    g.setXORMode(Color.green);    if(figure instanceof LineFigure){      LineFigure lineFigure = (LineFigure)figure;      if(lineFigure.firstDraw){        lineFigure.draw(g);        lineFigure.firstDraw = false;      }else{        lineFigure.draw(g);        lineFigure.endPoint = e.getPoint();        lineFigure.draw(g);      }    }    if(figure instanceof RectangleFigure){      RectangleFigure rectangleFigure = (RectangleFigure)figure;      if(rectangleFigure.firstDraw){        rectangleFigure.draw(g);        rectangleFigure.firstDraw = false;      }else{        rectangleFigure.draw(g);        rectangleFigure.endPoint = e.getPoint();        rectangleFigure.draw(g);      }    }    if(figure instanceof OvalFigure){      OvalFigure ovalFigure = (OvalFigure)figure;      if(ovalFigure.firstDraw){        ovalFigure.draw(g);        ovalFigure.firstDraw = false;      }else{        ovalFigure.draw(g);        ovalFigure.endPoint = e.getPoint();        ovalFigure.draw(g);      }    }  }  void this_mousePressed(MouseEvent e) {    if(figure != null){      figure.startPoint = e.getPoint();      figure.endPoint = e.getPoint();      figure.firstDraw = true;    }  }  void this_mouseReleased(MouseEvent e) {    if(figure instanceof LineFigure){      LineFigure lineFigure = (LineFigure)figure;      figures.add(lineFigure.clone());    }    if(figure instanceof RectangleFigure){      RectangleFigure rectangleFigure = (RectangleFigure)figure;      figures.add(rectangleFigure.clone());    }    if(figure instanceof OvalFigure){      OvalFigure ovalFigure = (OvalFigure)figure;      figures.add(ovalFigure.clone());    }  }  protected void paintComponent(Graphics parm1) {    /**@todo: Override this javax.swing.JComponent method*/    super.paintComponent( parm1);    parm1.setXORMode(Color.green);    int i;    for(i=0;i<figures.size();i++){      Object x = figures.get(i);      if(x instanceof LineFigure){        LineFigure lineFigure = (LineFigure)x;        lineFigure.draw(parm1);      }      if(x instanceof RectangleFigure){        RectangleFigure rectFigure = (RectangleFigure)x;        rectFigure.draw(parm1);      }      if(x instanceof OvalFigure){        OvalFigure ovalFigure = (OvalFigure)x;        ovalFigure.draw(parm1);      }    }  }}

⌨️ 快捷键说明

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