A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张甲甲 中级黑马   /  2013-5-16 20:23  /  1241 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.*;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class K1_7_1 extends Applet implements Runnable,ActionListener{
int num;
boolean temp = true;
Button bt;
public void init(){
bt = new Button("开始");
add(bt);
bt.addActionListener(this);
Thread th;
th = new Thread(this);
th.start();
}
public void run(){
while(temp){
try{
for(int i=0; i<100; i++){
num = i;
repaint();
Thread.sleep(400);
}
}
catch(InterruptedException e){}
}
}
public void actionPerformed(ActionEvent ae){
bt.setLabel("中止");
temp = false;
}
public void paint(Graphics g){
Dimension d =getSize();
int x =(int)(Math.random()*d.width);
int y =(int)(Math.random()*d.height);
g.fillOval(x,y,d.width-180,d.height-180);
}
}

我想做的东西如下:
有一个按钮,同时有一个黑点随机移动。 如何改一下使按钮可以控制动作。 点了开始以后按钮就变成中止, 然后让黑点的动作停止。
现在的情况是:按了按钮, 黑点也无法停止
求指点



评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

1 个回复

倒序浏览
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class TestAwt extends Frame implements Runnable{
                int num;
                boolean temp = true;
                Button bt = new Button("开始");
                public TestAwt(){
                        this.setVisible(true);
                        this.setSize(400,300);
                        this.addWindowListener(new WindowAdapter() {

                                @Override
                                public void windowClosing(WindowEvent e) {
                                 System.exit(0);
                                }
                               
                               
                        });
                        bt.setSize(50,50);
                        this.add(bt,new BorderLayout().EAST);
                    bt.addActionListener(new ActionListener() {
                               
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                       
                                        if(e.getActionCommand().equals("开始")){
                                                bt.setLabel("停止");
                                                temp = false;
                                        }
                                }
                        });
                }     
                  
                 public void run(){
                      while(temp){
                              repaint();
                              try {
                                        Thread.sleep(50);
                                } catch (InterruptedException e){
                                        e.printStackTrace();
                                }
                      }
                   }
                public void paint(Graphics g){
                Dimension d =getSize();
                int x =(int)(Math.random()*d.width);
                int y =(int)(Math.random()*d.height);
                Color c = g.getColor();
                g.setColor(Color.red);
                g.fillOval(x, y,10, 10);
                g.setColor(c);
                }
               
                public static void main(String args[]){
                        TestAwt ta = new TestAwt();
                        Thread thread = new Thread(ta);
                        thread.run();
                       
                }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马