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

📄 dauber2.java

📁 JAVA程序设计课程中各章节的程序实例。
💻 JAVA
字号:
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
import java.applet.Applet;

public class dauber extends Applet implements ActionListener, MouseListener, MouseMotionListener {

        Button buttonDraw, buttonLine, buttonOval, buttonRect, button3DRect; 
        Button buttonRounded; 
        
        Point pts[] = new Point[1000]; 
        Point ptAnchor, ptDrawTo, ptOldAnchor, ptOldDrawTo;
        int ptindex = 0;

        boolean bMouseDownFlag = false;
        boolean bMouseUpFlag = false;
        boolean bDrawFlag = false;
        boolean bLineFlag = false;
        boolean bOvalFlag = false;
        boolean bRectFlag = false;
        boolean b3DRectFlag = false;
        boolean bRoundedFlag = false;

        public void init() {

                buttonDraw = new Button("Draw Freehand"); 
                buttonLine = new Button("Line"); 
                buttonOval = new Button("Oval"); 
                buttonRect = new Button("Rect"); 
                button3DRect = new Button("3D Rect"); 
                buttonRounded = new Button("Round");

                add(buttonDraw); 
                buttonDraw.addActionListener(this);
                add(buttonLine); 
                buttonLine.addActionListener(this);
                add(buttonOval); 
                buttonOval.addActionListener(this);
                add(buttonRect); 
                buttonRect.addActionListener(this);
                add(button3DRect); 
                button3DRect.addActionListener(this);
                add(buttonRounded); 
                buttonRounded.addActionListener(this);
                addMouseListener(this);
                addMouseMotionListener(this);
                ptAnchor = new Point(0, 0);
                ptOldDrawTo = new Point(0, 0);
                ptDrawTo = new Point(0, 0);
        }
        
        public void mousePressed(MouseEvent e){
                bMouseDownFlag = true;
                bMouseUpFlag = false;
                ptOldDrawTo = new Point(e.getX(), e.getY());
                ptDrawTo = new Point(e.getX(), e.getY());
                ptAnchor = new Point(e.getX(), e.getY());
        }

        public void mouseReleased(MouseEvent e){
                bMouseDownFlag = false;
                bMouseUpFlag = true;
                ptOldDrawTo = ptDrawTo;
                ptDrawTo = new Point(e.getX(), e.getY()); 
                if(!bLineFlag){
                    ptDrawTo = new Point(Math.max(ptAnchor.x, ptDrawTo.x), Math.max(ptAnchor.y, ptDrawTo.y)); 
                    ptAnchor = new Point(Math.min(ptDrawTo.x, ptAnchor.x), Math.min(ptDrawTo.y, ptAnchor.y)); 
                }
                repaint(); 
        }

        public void mouseDragged(MouseEvent e){
                if(bDrawFlag){
                        pts[ptindex] = new Point(e.getX(), e.getY());
                        ptindex++;
                }
                else{
                        ptOldDrawTo = ptDrawTo; 
                        ptDrawTo = new Point(e.getX(), e.getY());
                }
                repaint();
        }

        public void mouseClicked(MouseEvent e){}

        public void mouseEntered(MouseEvent e){}

        public void mouseExited(MouseEvent e){}

        public void mouseMoved(MouseEvent e){}

        public void paint (Graphics g) {
                int loop_index;
                int figureWidth, figureHeight;
                Point topLeft; 

                if(bDrawFlag){
                    for(loop_index = 0; loop_index < ptindex - 1; loop_index++){
                        g.drawLine(pts[loop_index].x, pts[loop_index].y, 
                            pts[loop_index + 1].x, pts[loop_index + 1].y); 
                    }
                    return;  
                }

                g.setColor(new Color(0, 0, 0));
                g.setXORMode(getBackground());

                topLeft = new Point(Math.min(ptAnchor.x, ptOldDrawTo.x), Math.min(ptAnchor.y, ptOldDrawTo.y));
                figureWidth = Math.abs(ptOldDrawTo.x - ptAnchor.x);
                figureHeight = Math.abs(ptOldDrawTo.y - ptAnchor.y); 

                if(bLineFlag){
                        g.drawLine(ptAnchor.x, ptAnchor.y, ptOldDrawTo.x, 
                            ptOldDrawTo.y);
                }
                if(bOvalFlag){
                        g.drawOval(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight);
                }
                if(bRectFlag){
                        g.drawRect(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight);
                }
                if(b3DRectFlag){
                        g.draw3DRect(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight, true);
                }
                if(bRoundedFlag){
                        g.drawRoundRect(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight, 10, 10);
                }

                g.setColor(getBackground());
                topLeft = new Point(Math.min(ptAnchor.x, ptDrawTo.x), 
                     Math.min(ptAnchor.y, ptDrawTo.y));

                figureWidth = Math.abs(ptDrawTo.x - ptAnchor.x);
                figureHeight = Math.abs(ptDrawTo.y - ptAnchor.y); 

                if(bLineFlag){
                        g.drawLine(ptAnchor.x, ptAnchor.y, ptDrawTo.x, 
                            ptDrawTo.y);
                }
                if(bOvalFlag){
                        g.drawOval(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight);
                }
                if(bRectFlag){
                        g.drawRect(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight);
                }
                if(b3DRectFlag){
                        g.draw3DRect(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight, true);
                }
                if(bRoundedFlag){
                        g.drawRoundRect(topLeft.x, topLeft.y, figureWidth, 
                            figureHeight, 10, 10);
                }
        }

        public void actionPerformed(ActionEvent e){
                if(e.getSource() == buttonDraw){
                        bDrawFlag = !bDrawFlag;
                        bLineFlag = false;
                        bOvalFlag = false;
                        bRectFlag = false;
                        b3DRectFlag = false;
                        bRoundedFlag = false;
                }
                if(e.getSource() == buttonLine){
                        bLineFlag = !bLineFlag;
                        bDrawFlag = false;
                        bOvalFlag = false;
                        bRectFlag = false;
                        b3DRectFlag = false;
                        bRoundedFlag = false;
                }
                if(e.getSource() == buttonOval){
                        bOvalFlag = !bOvalFlag;
                        bLineFlag = false;
                        bDrawFlag = false;
                        bRectFlag = false;
                        b3DRectFlag = false;
                        bRoundedFlag = false;
                }
                if(e.getSource() == buttonRect){
                        bRectFlag = !bRectFlag;
                        bLineFlag = false;
                        bOvalFlag = false;
                        bDrawFlag = false;
                        b3DRectFlag = false;
                        bRoundedFlag = false;
                }
                if(e.getSource() == button3DRect){
                        b3DRectFlag = !b3DRectFlag;
                        bLineFlag = false;
                        bOvalFlag = false;
                        bRectFlag = false;
                        bDrawFlag = false;
                        bRoundedFlag = false;
                }
                if(e.getSource() == buttonRounded){
                        bRoundedFlag = !bRoundedFlag;
                        bLineFlag = false;
                        bOvalFlag = false;
                        bRectFlag = false;
                        b3DRectFlag = false;
                        bDrawFlag = false;
                }
        }
}

⌨️ 快捷键说明

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