import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Container;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;//它包含鼠标的点击\按下\松开\进入\离开事件
import java.awt.event.MouseMotionListener;//它包含鼠标的移动\ 拖动
import javax.swing.JFrame;
public class AutoDrawingLines extends JFrame{
private int x1,y1;
private int x2,y2;
private Graphics2D g2;
public AutoDrawingLines(){
super("画图板");
//1 调用方法获取一个容器
Container c = this.getContentPane();
// 设置容器的布局方式为null(即:取消容器的默认布局方式)
c.setLayout(null);
//设置容器的背景为白色
c.setBackground(Color.black);
//2 点击窗口的关闭按钮时,会实现窗口的关闭。
this.detDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//4
this.setLocation(400,200);
this.setSize(500,400);
this.setVisible(true);
new Drawing().start();
}
class Drawing extends Thread{
@Override
public void run(){
int centerX = 500/2;
int centerY = 400/2;
//获得一个图形对象
Graphics g = getGraphics();
g2 = (Graphics2D)g;//强制转换成二维模式
g2.setColor( Color.blue);
while(true){
repaint();
//画线条
for(int n = 1;n<=300;n++){
//设置图画的颜色
int red = (int)(255 * Math.random());
iet green = (int)(255 * Math.random());
int blue = (int)(255 * Math.random());
g2.setColor( new Color(red,green,blue));
//设置线条的宽度
float lineWidth = (float)(2.5 * Math.random());
g2.setStroke(new BasicStroke(lienWidth));
if(n % 2!=0){
x2 = (int)(500 * Math.sin(1.5 * 3.14 * Math.random()));
y2 = (int)(400 * Math.sin(1.5 * 3.14 * Math.random()));
}
else{
x2 =(int)(100 + 250 * Math.sin(3.14 * Math.random()));
y2 = (int)(100 + 200 * Math.sin(3.14 * Math.random()));
}
g2.drawLine(centerX,centerY,x2,y2);
try{
Thread.sleep(30);
} catch (InterrupteException e){
e.printStackTrace();
}
}
}
}
}
public static void main(Sting[] args){
new AutoDrawingLines();
}
}
