【问题标题】:Making a sleep method for WindowBuilder? [Java] [duplicate]为 WindowBuilder 制作睡眠方法? [Java] [重复]
【发布时间】:2013-06-04 16:55:33
【问题描述】:

我一直在尝试使用 WindowsBuilder 为 Java 编写睡眠方法,但没有成功。该程序以相反的方式运行,因此可以说,它会休眠,然后显示图形。

如何让程序休眠(延迟、等待)一段时间?

package me.fractional.main;

import java.awt.EventQueue;

import javax.swing.JFrame;
import me.fractional.main.Studio;
import me.fractional.main.GUI;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;
import java.awt.Color;



public class main {

public static boolean gamerunning = true;

private JFrame frmFractionalc;
static JLabel logo = new JLabel("");

public static void Sleep(int seconds)
{
    try {
        Thread.sleep(1000 * seconds);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                main window = new main();
                window.frmFractionalc.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public main() {
    initialize();
    intro();
}

private void initialize() {
    frmFractionalc = new JFrame();
    frmFractionalc.getContentPane().setBackground(new Color(0, 139, 139));
    frmFractionalc.setBackground(new Color(0, 128, 128));
    frmFractionalc.setTitle("Fractional (C) - GameDevStory");
    frmFractionalc.setBounds(100, 100, 500, 300);
    frmFractionalc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frmFractionalc.getContentPane().setLayout(null);

    logo.setHorizontalAlignment(SwingConstants.CENTER);
    logo.setBounds(35, 50, 400, 150);
    frmFractionalc.getContentPane().add(logo);

}

public void intro()
{
    logo.setIcon(new ImageIcon(main.class.getResource("/me/fractional/main/logo.png")));
    Sleep(4);
}

}

【问题讨论】:

    标签: java delay sleep wait windowbuilder


    【解决方案1】:

    此类问题的标准答案:

    • 不要在主 Swing 线程、事件调度线程或 EDT 上调用 Thread.sleep(...),因为让该线程进入睡眠状态会阻止它完成绘制应用程序和与用户交互的工作,从而有效地使整个应用程序进入睡眠状态.
    • 改为使用摆动计时器。 Swing Timer tutorial 可以告诉您如何操作。

    【讨论】:

    • 感谢您的超级快速回答!我去看看,干杯!
    • @FredrikSander:不客气。很幸运。
    • 对不起,我真的不明白它是如何工作的,你能举个例子吗? :D
    • @FredrikSander:当然,请看here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2011-05-18
    相关资源
    最近更新 更多