📄 circlepanel.java
字号:
/* * circlepanel.java * * Created on 2005年12月25日, 下午3:51 */package painttool;/** * * @author cb */import java.io.*;import java.awt.*;import java.awt.event.*;public class circlepanel{ public static int dotnumber=1; public static Button drawcircle=new Button("drawcircle"); public static Button clear=new Button("clear"); public static Button construct=new Button("建立坐标"); public static TextField t1=new TextField(); public static TextField t2=new TextField(); public static TextField t3=new TextField(); public circlepanel() { TextField t1=new TextField(); TextField t2=new TextField(); TextField t3=new TextField(); BorderLayout bl=new BorderLayout(); Button b1=new Button("center"); Button b2=new Button("edge"); Button b3=new Button("radius"); Panel p=new Panel(); Panel p1=new Panel(); Panel p2=new Panel(); Main.circlep.setLayout(new BorderLayout()); Main.circlep.add(p,bl.SOUTH); p.setLayout(new GridLayout(1,2)); p.setVisible(true); p1.setVisible(true);p2.setVisible(true); p1.setLayout(new GridLayout(1,3)); p2.setLayout(new GridLayout(2,3)); p.add(p1);p.add(p2); p1.add(drawcircle);p1.add(clear);p1.add(construct); p2.add(b1);p2.add(b2);p2.add(b3); p2.add(t1);p2.add(t2);p2.add(t3); monitorc watch=new monitorc(); clear.addActionListener(watch); drawcircle.addActionListener(watch); construct.addActionListener(watch); Main.circlep.addMouseListener(watch); Main.card.show(Main.mainFrame,"third"); Main.card.show(Main.mainFrame,"second"); }}class monitorc extends Canvas implements MouseListener,ActionListener{ int x1=0,x2=0,y1=0,y2=0; int k=0; public void actionPerformed(ActionEvent e) { Graphics g=Main.circlep.getGraphics(); if(e.getSource()==circlepanel.drawcircle) { k=(int)Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); drawcirclemid(k,x1,y1); } if(e.getSource()==circlepanel.construct) { int i=0; g.drawLine(0, 200, 400, 200); g.drawLine(200, 0, 200, 400); while(i<200) { g.drawString(""+i,200+i,200); i=i+40; } i=0; while(i<200) { g.drawString(""+(-200+i),i,200); i=i+40; } i=0; while(i<200) { g.drawString(""+i,200,200+i); i=i+40; } i=0; while(i<200) { g.drawString(""+(-200+i),200,i); i=i+40; } } if(e.getSource()==circlepanel.clear) { g.clearRect(0,0,400,350); circlepanel.t1.setText(""); circlepanel.t2.setText(""); circlepanel.t3.setText(""); x1=0;x2=0;y1=0;y2=0; k=0; circlepanel.dotnumber=1; } } public void mouseClicked(MouseEvent e) { Graphics g=Main.circlep.getGraphics(); if(circlepanel.dotnumber==1) { x1=e.getX();y1=e.getY(); circlepanel.t1.setText(""+e.getX()); circlepanel.t2.setText(""+e.getY()); g.drawString("start", e.getX()-20,e.getY()); } if(circlepanel.dotnumber==2) { x2=e.getX();y2=e.getY(); g.drawString("end", e.getX(),e.getY()); } g.drawLine(e.getX(),e.getY(),e.getX(),e.getY()); circlepanel.dotnumber++; } public void mouseReleased(MouseEvent e){ } public void mousePressed(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e) { } public void drawcirclemid(int r,int x1,int y1) { Graphics g=Main.circlep.getGraphics(); //g.drawLine(33,33,55,55); int deltax=0,deltay=0,d=0; int x=0,y=0; deltax=3; deltay=2-(int)r-(int)r; d=1-(int)r; x=0; y=(int)r; while(x<y) { if(d<0) { d+=deltax; deltax+=2; x++; } else { d+=(deltax+deltay); deltax+=2; deltay+=2; x++; y--; } deltax=3; deltay=2-r-r; d=1-r; x=0; y=r; while(x<y) { if(d<0) { d+=deltax; deltax+=2; x++; } else { d+=(deltax+deltay); deltax+=2; deltay+=2; x++; y--; } g.drawLine(x+x1,y1-y,x+x1,y1-y); g.drawLine(x1-x,y1+y,x1-x,y1+y); g.drawLine(x1-x,y1-y,x1-x,y1-y); g.drawLine(x+x1,y1+y,x+x1,y1+y); g.drawLine(x1-y,x+y1,x1-y,x+y1); g.drawLine(x1+y,y1-x,x1+y,y1-x); g.drawLine(x1+y,x+y1,x1+y,x+y1); g.drawLine(x1-y,y1-x,x1-y,y1-x); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -