drawrtest.java
来自「在面板上用线程画圆。并隔时间改变颜色。」· Java 代码 · 共 80 行
JAVA
80 行
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class DrawrTest //implements WindowListener
{
public static void main(String args[]){
int col = 0;
long millis = 0;
if(col<2 || col>12){
col = 2;
millis = 1000;
MyFrame frame = new MyFrame(col,millis);
frame.setSize(400,350);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
else{
System.exit(0);
}
}
}
class COval extends JPanel implements Runnable
{
private final Color colors[]={Color.black,Color.red,Color.blue,Color.gray,Color.lightGray,
Color.white,Color.cyan,Color.pink,Color.darkGray,Color.green,
Color.orange,Color.magenta,Color.yellow};
private long c_millis = 0;
public COval(long millis){
c_millis = millis;
Thread t1 = new Thread(this);
t1.start();
}
public void paint(Graphics g){
int i = 0;
i = (int)(Math.random()*colors.length);
g.setColor(colors[i]);
g.fillOval(0,0,getSize().width,getSize().height);
}
public void run(){
while(true){
try{
this.repaint();
Thread.sleep(c_millis);
}
catch(InterruptedException e){
System.out.println (e);
}
}
}
}
class MyFrame extends JFrame
{
private COval p[];
private long m_millis = 0;
public MyFrame(int col,long millis){
m_millis = millis;
Container c = getContentPane();
c.setLayout(new GridLayout(col,col));
p = new COval[col*col];
for (int i = 0; i<col*col; i++){
p[i] = new COval(millis);
c.add(p[i]);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?