JAVA 怎么让走动的线程停止

来源:百度知道 编辑:UC知道 时间:2024/09/20 17:57:20
我在做一个猜数游戏 随即产生1~10之间的一个数字 用线程计时 用户输入 按确定之后 线程停止 显示用时多少多少秒 怎么让线程停止?高手给个方法 stop()行吗 加在哪里 代码如下:

package cm;

import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class suiji extends JFrame implements ActionListener {

Container c = getContentPane();
GridLayout buju;
JPanel p1 = new JPanel();
JLabel jb2 = new JLabel("随即数");
JTextField jtf1 = new JTextField(2);

JPanel p2 = new JPanel();
JTextField jtf2 = new JTextField(5);
JButton a1 = new JButton("确定");
JButton a2 = new JButton("重置");

JPanel p3 = new JPanel();
JLabel jb1 = new JLabel();

JPanel p4 = new JPanel();
JLabel jb3 = new JLabel();

public suiji() {
MyTread mt = new MyTread();
mt.start();

buju = new GridLayout(4, 1);
c.setLayout(buju);
p1.add(jb2);

不要用stop(),这个方法早就过时,被废弃了.
你可以在MyTread这个类中写一个改变boolean a 值的函数:setA(boolean a ),在需要停止线程的地方,将a的值设置为false.

你这里可以不用线程来计时,直接获取猜数前后的时间做个减法就行了,如果非要用线程可以去查查api看线程能不能打断.

弄一个boolean,退出的时候设为false

import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class Suiji extends JFrame implements ActionListener {

Container c = getContentPane();
GridLayout buju;
JPanel p1 = new JPanel();
JLabel jb2 = new JLabel("随即数");
JTextField jtf1 = new JTextField(2);

JPanel p2 = new JPanel();
JTextField jtf2 = new JTextField(5);
JButton a1 = new JButton("确定");
JButton a2 = new JButton("重置");

JPanel p3 = new JPanel();
JLabel jb1 = new JLabel();

JPanel p4 = new JPanel();
JLabel jb3 = new JLabel();
MyTread mt;
public Suiji() {
mt = new MyTread(this);
mt.start();