相关疑难解决方法(0)

Swing - Thread.sleep()停止JTextField.setText()工作

可能重复:
对单个线程使用sleep()

使用Thread.sleep()时,我遇到了JTextField.setText()的问题.这是我正在制作的基本计算器.当输入字段中的输入格式不正确时,我希望"INPUT ERROR"在输出字段中出现5秒钟,然后清除它.当我只将文本设置为"INPUT ERROR"并打印出中间的文本时,setText()方法确实有效,我发现它确实可以同时使用它和setText("").当我在它们之间放置Thread.sleep()时会出现问题.这是代码的SSCCE版本:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Pattern;
import javax.swing.*;

public class Calc {
    static Calc calc = new Calc();

    public static void main(String args[]) {
        GUI gui = calc.new GUI();
    }

    public class GUI implements ActionListener {

        private JButton equals;

        private JTextField inputField, outputField;

        public GUI() {
            createFrame();
        }

        public void createFrame() {
            JFrame baseFrame = new JFrame("Calculator");
            baseFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel contentPane = new JPanel();
            BoxLayout layout = new BoxLayout(contentPane, BoxLayout.Y_AXIS);
            contentPane.setLayout(layout);
            baseFrame.setContentPane(contentPane);
            baseFrame.setSize(320, 100); …
Run Code Online (Sandbox Code Playgroud)

java swing jtextfield thread-sleep

5
推荐指数
3
解决办法
9151
查看次数

java thread.sleep也让swing ui进入睡眠状态

我正在创建一个简单的测试应用程序,它使用thread.sleep()通过JFileChooser在所选目录上每小时运行一次检查.但是当我选择目录并且方法运行时,ui面板变为灰色并且摆动位消失.该线程似乎正在让ui进入睡眠状态以及它所调用的方法.

if (option == JFileChooser.APPROVE_OPTION) {
    selectedDirectory = chooser.getSelectedFiles();
    try {
        while (true) {
            runCheck(selectedDirectory);
            Thread.sleep(1000*5);//1000 is 1 second
        }
    } catch (InterruptedException e1) {
        Thread.currentThread().interrupt();
        e1.printStackTrace();
    }               
} 
Run Code Online (Sandbox Code Playgroud)

我正在寻找解决此问题的方法,以便我可以打印在ui .setText(结果)中运行的检查结果

java swing multithreading

4
推荐指数
1
解决办法
6296
查看次数

Thread.sleep(1000)无法在Swing中工作

我在java swing中有一个简单的动画程序.但它没有用.

    try{
    for(int i = 1; i<=500; i++){    
    ImageIcon icon = new ImageIcon("img\\COVERFront.jpg");
    Image image = icon.getImage();
    Image scaled =  image.getScaledInstance(400, i, 0);
    jLabel2.setIcon(new ImageIcon(scaled));
    Thread.sleep(1000);
    }
    }
    catch(InterruptedException ie){}
Run Code Online (Sandbox Code Playgroud)

我在netbeans 7.1工作.

java animation swing multithreading

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