java - 在应用程序启动 Java swing 之前等待光标

标签 java swing cursor swingworker

我想在应用程序启动之前将光标更改为沙漏 当您在 Eclipse 中单击“运行”时,它应该显示沙漏。我的应用程序需要大约 4 秒来加载 Swing 应用程序,其中大约需要 3 秒来获取系统相关属性。 我尝试使用 setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); .但没有太大改进

任何人都可以在这方面提供帮助

这是我的代码

public static void main(String args[]){

     String os = System.getProperty("os.name").trim().toLowerCase();
       if (!os.equals("windows server 2008 r2") &&
            !os.equals("windows server 2012")) {
        JOptionPane.showMessageDialog(null, TPDI18N.formatWithBundle(
            SsUtils.SS, "ss.error.notSupportedPlatform", os),
            TPDI18N.getString("common.error"), JOptionPane.ERROR_MESSAGE);
        System.exit(0);
       }
   System.setProperty("sun.awt.exception.handler",
        "somepackage");

    ThreadGroup threadGroup = new ThreadGroup("My title") {
        @Override
        public void uncaughtException(Thread t, Throwable e) {
            if (!(e instanceof ThreadDeath)) {
                ErrorUtil.logErrorAndExit(e);
            }
        }
    };

    Runnable r = new Runnable() {
        public void run() {

             startApplication();
        }
    };
    new Thread(threadGroup, r).start();  

}
   private static void startApplication() {
    DirUtil.setAppDir(AppLICATION);
    MyManager.startGUI(new String[0], LOG4J_SS_CONFIG);//Maximum time is consumed at this place
    DirUtil.setHelpTopicDirectory(IMC_HELP_DIR);
    WindowsConfigurator.makeInstance(TPDDirUtil.makeLogDir());
    MyClassManager main = new MyClassManager();
    main.setSize(new Dimension(1000, 720));
    centerWindow(main);
    main.setVisible(true);
    main.setMinimumSize(main.getSize());

}

public MyClassManager() {
    super(TPDI18N.getString(Utils.AA, "aa.title"));
    //here creation of panel takes place
    ---
    --
    }

最佳答案

您的问题可能是您正在加载的代码正在 Swing 事件线程上运行,从而阻止您看到光标更改。解决方案是使用 SwingWorker 在后台线程中执行加载代码,从而释放 Swing 事件调度线程来完成其工作。

关于java - 在应用程序启动 Java swing 之前等待光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008770/

相关文章:

css - Chrome 中 anchor 上的指针状态偶尔失败

android - 游标索引越界异常

android - 在android中显示两个混合光标

java - 使用 Google Guava Collections2.transform 的奇怪之处

java - 如何替换签名 jar 中的单个类文件?

java aes javax.crypto.BadPaddingException : Given final block not properly padded

java - 使用 JOptionPane 进行数据验证

java - 如何移动到 JTextField 中的下一个标记

java - 泰博EMS : not acknowledge message

java - 在文本区域附加中格式化。 java