wl9212 2013-12-20 12:59 采纳率: 100%
浏览 910

java,线程终止问题,线程设置静态后,每次点击后原来的线程不能消失

package com.radio.weather.view;
import javax.swing.*;

import com.radio.weather.model.*;

import java.util.*;
import java.awt.event.*;
import java.awt.*;
public class WeatherFrame extends JFrame implements ActionListener{

//定义所需要的组件
JPanel jp1,jp2;
JButton jb1,jb2;
JTextArea jta;
JTextField jtf;
JScrollPane jsp;
String sendInfo;
Date date;
static Thread t=null;
public static void main(String[] args) {
    // TODO 自动生成的方法存根

    new WeatherFrame();
}

public WeatherFrame()
{
    //初始化组件
    jp1=new JPanel();
    jp1.setLayout(new BorderLayout());
    jp2=new JPanel();
    jp2.setLayout(new FlowLayout());

    jb1=new JButton("停止");
    jb2=new JButton("发送");
    jb2.addActionListener(this);

    jta=new JTextArea();
    jtf=new JTextField(20);
    jsp=new JScrollPane(jta);

    //初始化jp2
    jp2.add(jb1);
    jp2.add(jtf);
    jp2.add(jb2);

    //初始化jp1
    jp1.add(jsp);
    jp1.add(jp2,"South");

    this.add(jp1);
    this.setVisible(true);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setSize(400,300);

}

@Override
public void actionPerformed(ActionEvent arg0) {
    // TODO 自动生成的方法存根
    if(arg0.getSource()==jb2&&(!(jtf.getText().length()==0)))
    {

        Date date=new Date();
        String time=String.format("%tT", date);
        String month=String.format("%tF", date);
        this.sendInfo=month+" "+time+": "+jtf.getText()+"\r\n";
        jta.append(sendInfo);
        jtf.setText("");
        //定义发送信息的线程           
        this.t=new SendMessage(sendInfo);
        this.t.start();

    }
}

}

为什么我的线程t设为static后,每次点击jb2即发送按钮后原线程覆盖不了,还会继续继续运行,同时会新建一个线程。如何把原来的线程给停止掉。

这是控制台的信息:
2013-12-20 20:53:13: 第一次点击发送按钮

2013-12-20 20:53:13: 第一次点击发送按钮

2013-12-20 20:53:13: 第一次点击发送按钮

2013-12-20 20:53:20: 第二次点击发送按钮

2013-12-20 20:53:13: 第一次点击发送按钮

2013-12-20 20:53:20: 第二次点击发送按钮

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
    • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
    • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
    • ¥15 python天天向上类似问题,但没有清零
    • ¥30 3天&7天&&15天&销量如何统计同一行
    • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
    • ¥15 C#调用python代码(python带有库)
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?