📄 printline.java
字号:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
public class PrintLine extends Frame{
List<Point> Points = new ArrayList<Point>();
Label a1=new Label("请输入圆的半径:");
TextField b1=new TextField();
Button conf=new Button("确定");
Button cancle=new Button("清除");
int t;
int r;
double d;
//Point a= new Point(1,1);
void LaunchFrame(){
int i;
this.setLocation(100,100);
this.setSize(700,700);
this.setVisible(true);
this.setLayout(null);
this.setTitle("计科061319 肖亮");
a1.setBounds(100, 620, 100, 30);
b1.setBounds(230, 620, 60, 30);
conf.setBounds(310,620,60,30);
cancle.setBounds(400, 620, 60, 30);
this.add(a1);
this.add(b1);
this.add(conf);
this.add(cancle);
this.setBackground(Color.BLACK);
this.addWindowListener(new MyWindowMonitor());
confLis bl=new confLis();
cancLis b2=new cancLis();
conf.addActionListener(bl);
cancle.addActionListener(b2);
}
class cancLis implements ActionListener{
public void actionPerformed(ActionEvent e) {
Points.clear();
repaint();
}
}
class confLis implements ActionListener{
public void actionPerformed(ActionEvent e) {
Points.clear();
try{
r=Integer.parseInt(b1.getText());
if(r==0){
}
else{
int x,y;
x=0; y=r;
d=1.25-r;
Points.add(new Point(x,y));
Points.add(new Point(x,-y));
Points.add(new Point(-x,y));
Points.add(new Point(-x,-y));
Points.add(new Point(y,x));
Points.add(new Point(-y,x));
Points.add(new Point(y,-x));
Points.add(new Point(-y,-x)); //显示圆弧上的八个对称点
while(x<=y)
{ if(d<0) d+=2*x+3;
else { d+=2*(x-y)+5; y=y-1;}
x++;
Points.add(new Point(x,y));
Points.add(new Point(x,-y));
Points.add(new Point(-x,y));
Points.add(new Point(-x,-y));
Points.add(new Point(y,x));
Points.add(new Point(-y,x));
Points.add(new Point(y,-x));
Points.add(new Point(-y,-x));
}
}
}catch(Exception ee){}
repaint();
}
}
public void paint(Graphics g){
Color c =g.getColor();
g.setColor(Color.gray);
for(int i=100;i<=600;i=i+25)
{
g.drawLine(i, 100, i, 600);
}
for(int i=100;i<=600;i=i+25){
g.drawLine(100,i,600,i);
}
//a.draw(g);
g.drawOval(350-r*25, 350-r*25,r*50,r*50);
for(int i=0;i<Points.size();i++){
Point p= Points.get(i);
if(p.x<11&&p.y<11&&p.y>-11&&p.x>-11){
p.draw(g);}
}
g.setColor(c);
}
class MyWindowMonitor extends WindowAdapter{
public void windowClosing(WindowEvent e){
setVisible(false);
System.exit(0);
}
}
public static void main(String[] a) {
new PrintLine().LaunchFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -