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

📄 middot.java

📁 使用java语言编写的画图板
💻 JAVA
字号:
/* * linepanel.java * * Created on 2005年12月10日, 下午6:32 */package painttool;import java.io.*;import java.awt.*;import java.awt.event.*;public class middot {    public static int dotnumber=1;    public static TextField t1=new TextField();    public static TextField t2=new TextField();    public static TextField t3=new TextField();    public static TextField t4=new TextField();    public static TextField t5=new TextField();        public static Button drawline=new Button("drawline");    public static Button clear=new Button("clear");    public middot()    {        BorderLayout bl=new BorderLayout();                    Button b1=new Button("start-x");        Button b2=new Button("start-y");        Button b3=new Button("end-x");        Button b4=new Button("end-y");        Button b5=new Button("xl");        Panel p=new Panel();        Panel p1=new Panel();        Panel p2=new Panel();        Main.linep.setLayout(new BorderLayout());         Main.linep.add(p,bl.SOUTH);                p.setLayout(new GridLayout(1,2));        p.setVisible(true);        p1.setVisible(true);p2.setVisible(true);        p1.setLayout(new GridLayout(1,2));        p2.setLayout(new GridLayout(2,5));        p.add(p1);p.add(p2);                 p1.add(drawline);p1.add(clear);        p2.add(b1);p2.add(b2);p2.add(b3);p2.add(b4);p2.add(b5);        p2.add(t1);p2.add(t2);p2.add(t3);p2.add(t4);p2.add(t5);          monitor1 watch=new monitor1();        clear.addActionListener(watch);        drawline.addActionListener(watch);        Main.linep.addMouseListener(watch);        Main.card.show(Main.mainFrame,"second");        Main.card.show(Main.mainFrame,"first");            }}class monitor1 extends Canvas implements MouseListener,ActionListener{    int x1=0,x2=0,y1=0,y2=0;    String s1,s2,s3,s4;    public void actionPerformed(ActionEvent e)    {        Graphics g=Main.linep.getGraphics();        if(e.getSource()==linepanel.drawline)   //画直线        {        	if(linepanel.dotnumber==1)        	{        		s1=linepanel.t1.getText();        		s2=linepanel.t2.getText();        		s3=linepanel.t3.getText();        		s4=linepanel.t4.getText();        		x1=Integer.parseInt(s1);        		y1=Integer.parseInt(s2);        		x2=Integer.parseInt(s3);        		y2=Integer.parseInt(s4);        		middot(x1,x2,y1,y2);      		        	}        	else         	{                        middot(x1,x2,y1,y2);                 }        }        if(e.getSource()==linepanel.clear)     //清除画板内的点或者直线,以及所获得的坐标        {            g.clearRect(0,0,400,350);            linepanel.t1.setText("");            linepanel.t2.setText("");            linepanel.t3.setText("");            linepanel.t4.setText("");            linepanel.t5.setText("");            linepanel.dotnumber=1;            this.x1=0;this.x2=0;            this.y1=0;this.y2=0;                    }    }        public void mouseClicked(MouseEvent e)    {           Graphics g=Main.linep.getGraphics();        if(linepanel.dotnumber<=2)        {                        if(linepanel.dotnumber==1)            {                  x1=e.getX();y1=e.getY();                linepanel.t1.setText(""+e.getX());                linepanel.t2.setText(""+e.getY());                     g.drawString("start", e.getX()-20,e.getY());            }            if(linepanel.dotnumber==2)            {                 x2=e.getX();y2=e.getY();                linepanel.t3.setText(""+e.getX());                linepanel.t4.setText(""+e.getY());                 g.drawString("end", e.getX(),e.getY());            }            g.drawLine(e.getX(),e.getY(),e.getX(),e.getY());            linepanel.dotnumber++;        }            }         public void mouseReleased(MouseEvent e){   }      public void mousePressed(MouseEvent e){   }     public void mouseEntered(MouseEvent e){   }     public void mouseExited(MouseEvent e){   }           public void middot(int x0,int x1,int y0,int y1)    {        Graphics g=Main.linep.getGraphics();        int a=0,b=0,midx=0,midy=0,delta1=0,delta2=0,d=0,x=0,y=0,yt=0,xt=0;        float k=0;                linepanel.t5.setText(""+k);        if(x1>x0&&y1<y0||x1<x0&&y1>y0)        {            if(x1<x0&&y1>y0)            {                midx=x0;midy=y0;                x0=x1;y0=y1;                x1=midx;y1=midy;            }            a=y0-y1;            b=x1-x0;                        k=a/b;            if(k<1)            {                d=-2*a+b;                delta1=-2*a;                delta2=2*(-a+b);                x=x0;y=y0;                while(x<x1)                {                    if(d<0)                    {                        x++;y--;                        d=delta2+d;                    }                    else                    {                        x++;                        d=delta1+d;                    }                    g.drawLine(x,y,x,y);                }            }            if(k>=1)            {                d=-a+2*b;                delta1=2*b;                delta2=-2*a+2*b;                x=x0;y=y0;                while(y>y1)                {                    if(d<0)                    {                        y--;                        d=delta1+d;                    }                    else                    {                        x++;y--;                        d=delta2+d;                    }                    g.drawLine(x,y,x,y);                }            }        }        else        {        if(x1<x0&&y1<y0)        {            a=y1-y0;            b=x0-x1;            k=a/b;            x=x1;            y=y1;                yt=y0;            xt=x0;        }        if(x1>x0&&y1>y0)        {            a=y0-y1;            b=x1-x0;            k=a/b;              x=x0;            y=y0;            xt=x1;            yt=y1;        }                g.drawLine(x,y,x,y);        if(k<-1)        {            d=a+2*b;            delta1=2*b;            delta2=2*a+2*b;            while(y<yt)            {                if(d<0)                {                    y++;                    d=delta1+d;                }                else                {                    x++;y++;                    d=d+delta2;                                }                g.drawLine(x,y,x,y);            }        }        if(k>=-1&&k<=0)        {            d=2*a+b;            delta1=2*a;            delta2=2*(a+b);            while(x<xt)            {                if(d<0)                {                    x++;y++;                    d=delta2+d;                }                else                {                    x++;                    d=delta1+d;                }                g.drawLine(x,y,x,y);            }        }                }          }}

⌨️ 快捷键说明

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