📄 table.java
字号:
import java.awt.*;
import java.awt.event.*;
public class Table extends Frame implements ActionListener
{
private Button quit=new Button("Quit");
private Button start=new Button("Start");
private Button stop=new Button("Stop");
private Marble marbles[]=new Marble[20];
public Table()
{
super("Table with marble");
setLayout(new FlowLayout());
add(quit);
quit.addActionListener(this);
add(start);
start.addActionListener(this);
add(stop);
stop.addActionListener(this);
validate();
setSize(300,300);
setVisible(true);
for(int i=0;i<marbles.length;i++)
{
int x=(int)(getSize().width*Math.random());
int y=(int)(getSize().width*Math.random());
marbles[i]=new Marble(this,x,y);
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==stop)
for(int i=0;i<marbles.length;i++)
marbles[i].halt();
if(e.getSource()==start)
for(int i=0;i<marbles.length;i++)
{
marbles[i].halt();
marbles[i]=new Marble(this,marbles[i].x,marbles[i].y);
}
if(e.getSource()==quit)
System.exit(0);
}
public void paint(Graphics g)
{
for(int i=0;i<marbles.length;i++)
if(marbles[i]!=null)
marbles[i].draw(g);
}
public static void main(String[] args) {
// TODO: Add your code here
Table ta=new Table();
}
}
class Marble extends Thread
{
public int i=0;
private int xdir=2*(1-2*(int)Math.round(Math.random()));
private int ydir=2*(1-2*(int)Math.round(Math.random()));
private boolean running=false;
private Table table=null;
protected int x,y;
public Marble(Table _table,int _x,int _y) {
table=_table;
x=_x;
y=_y;
start();
}
public void start()
{
running=true;
super.start();
}
public void halt()
{
running=false;
}
public void run()
{
while(running)
{
move();
try{
sleep(50);
}
catch(InterruptedException ie)
{
System.err.println("Thread interrupted");
}
table.repaint();
}
}
private void move()
{
x+=xdir;
y+=ydir;
if((x>table.getSize().width)||(x<0))
xdir*=-1;
if((y>table.getSize().width)||(y<0))
ydir*=-1;
}
public void draw(Graphics g)
{
if(i%10==0)
{
g.setColor(Color.RED);
g.fillOval(x,y,20,20);
i++;
}
else
{
g.setColor(Color.blue);
g.fillOval(x,y,20,20);
i++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -