问题描述
- 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()+"rn"; 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: 第二次点击发送按钮
时间: 2024-11-27 04:36:49