可能重复:
对单个线程使用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) 我正在创建一个简单的测试应用程序,它使用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中有一个简单的动画程序.但它没有用.
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工作.