小编Spe*_*wls的帖子

希望使用thread.sleep暂停一个线程

我正在使用鼠标监听器来按下并释放鼠标.当按下鼠标时,我希望有一个计数器递增一个变量,当鼠标被释放时,我想减少该变量.现在,我的代码正在工作并且这样做但是增量太快我想减速它因为我在游戏中使用这些数字作为坐标.我尝试添加一个Thread.sleep(100),但我得到了偏斜的输出.看起来好像有多个线程同时出现,我到处都有数字.下面是示例代码.

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.lang.*;

public class Sample extends JFrame {
    private JPanel jp = new JPanel();

    int i = 0;
    boolean once = true;
    boolean on = true;

    Thread t1 = new Thread(new Increase());
    Thread t2 = new Thread(new Decrease());

    public sample() {
        setVisible(true);
        setSize(300, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        add(jp);

        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent event) {
                if (!once) //false
                {
                    t2.interrupt();
                }

                if (once) //true
                {
                    once = false;
                    t1.start();
                } …
Run Code Online (Sandbox Code Playgroud)

java multithreading

2
推荐指数
1
解决办法
102
查看次数

标签 统计

java ×1

multithreading ×1