| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1014 人关注过本帖
标题:线程的停止和继续
只看楼主 加入收藏
星星的光芒
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-11-12
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
线程的停止和继续
//线程:package com.soft.test;


import javax.swing.JTextArea;

public class CirStopThread implements Runnable{
   
    private JTextArea jTextArea;
    private boolean flag=true;
    public boolean isFlag(){
        return flag;
    }
    public void setFlag(boolean flag){
        this.flag=flag;
    }
    public  CirStopThread(JTextArea area) {
        this.jTextArea=area;
    }
    @Override
    public void run() {
        String str[]={"Mary","Rose","Jack"};
        int len=str.length;
        while(flag)
          {for(int i=0;i>=0;i++){
            int n=i%len;
            jTextArea.append(str[n]+"\r\n");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        }
        
        
    }

}
//测试:package com.soft.test;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class StopFrame extends JFrame implements ActionListener{
    private JPanel jPanel;
    private JScrollPane scrollPane;
    private JTextArea area;
    private JButton button;
    private CirStopThread cirStopThread;
      public StopFrame(){
          init();
          setTitle("线程停止");
          setSize(600,500);
         
          cirStopThread=new CirStopThread(area);
          Thread thread=new Thread(cirStopThread);
          thread.start();
          setLocationRelativeTo(null);
          setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
          setVisible(true);
      }
      public void init(){
          jPanel=new JPanel(new FlowLayout(FlowLayout.CENTER));
          button=new JButton("停止");
          button.addActionListener(this);
          area=new JTextArea(10,25);
          scrollPane=new JScrollPane(area);
          jPanel.add(scrollPane);
          jPanel.add(button);
          add(jPanel,BorderLayout.CENTER);
      }
      public static void main(String[] args) {
        new StopFrame();
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==button){
            cirStopThread.setFlag(false);
            button.setText("开始");
        
        }
        
    }
}
按了按钮不停,是什么原因啊
搜索更多相关主题的帖子: private package public return import 
2015-11-06 11:14
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:5 
button.addActionListener(this);
没有添加事件监听器,参数应该构建一个listener

一片落叶掉进了回忆的流年。
2015-11-06 11:49
星星的光芒
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 2楼 诸葛欧阳
不是有 @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==button){
            cirStopThread.setFlag(false);
            button.setText("开始");
        
        }
        
    }
这个吗
2015-11-06 12:57
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
回复 3楼 星星的光芒
但是你没有用啊

一片落叶掉进了回忆的流年。
2015-11-06 18:09
星星的光芒
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 3楼 星星的光芒
不是用了吗
2015-11-06 21:15
快速回复:线程的停止和继续
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026856 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved