📄 drawfigurepanel.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 + -