java移动小球_Java多线程移动的小球

importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Graphics;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;im...

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

@SuppressWarnings("serial")

public class MoveBall02 extends JFrame {

private JButton jbtu = null;

private Ball02 ball = null;

Thread t = null;

public static void main(String[] args) {

new MoveBall02();

}

public MoveBall02() {

this.setTitle("移动的小球");

this.setSize(600, 500);

this.setLocation(100, 100);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

ball = new Ball02(40, 40);

this.add(ball);

t = new Thread(ball);

jbtu = new JButton("点击移动小球");

this.add(jbtu, BorderLayout.SOUTH);

jbtu.addActionListener(new MyActionListener());

this.setVisible(true);

}

class MyActionListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

if(e.getSource() == jbtu) {

// 响应鼠标点击事件

if(!t.isAlive())

t.start();

}

}

}

}

@SuppressWarnings("serial")

class Ball02 extends JPanel implements Runnable {

private int x, y;

public Ball02(int x, int y) {

this.x = x;

this.y = y;

}

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.RED);

g.fillOval(x, y, 40, 40);

}

@Override

public void run() {

try {

for(int i=0; i<20; i++) {

x = y += 3;

this.repaint();

Thread.sleep(100);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

"AWT-EventQueue-0" java.lang.IllegalThreadStateException

错误是:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException

实在是不知道是怎么回事了,

JDK1.8

Win732位

Eclipse 版本

Eclipse Java EE IDE for Web Developers.

Version: Kepler Service Release 2

Build id: 20140224-0627

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值