创建 Java 消息对话框(swing/awt/其他)的最快方法?

2023-11-26

我正在创建一个 Java 应用程序,它将执行一些处理,然后需要显示一条消息以向用户提供反馈。

然而,它似乎非常慢——需要两秒钟多的时间才能返回。

我将源代码剥离到明显的罪魁祸首,这里是使用的代码:

package SwingPlay;

import javax.swing.JFrame;

public class Dialog
{

    public static void main( String[] args )
    {
        JFrame frame = new JFrame( "DialogDemo" );
    }

}

我正在从命令行执行此操作:

java -classpath . SwingPlay.Dialog

正如您所看到的 - 我除了创建一个 JFrame 之外什么也没做,甚至没有显示它。

如果相关的话,这是我的java -version output:

java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)

(目前)它正在 Win XP SP2 上运行。


那么,第一个问题:为什么这么慢?

更重要的是,我只想立即显示一条简单的消息(GUI,而不是命令行)——任何人都可以提供一些代码来执行此操作吗?


Update:

一些背景知识可能会有所帮助:
我正在创建一个具有许多“头”的应用程序(即不同的用户界面都使用相同的核心类来完成复杂的部分)。
我目前有一个纯命令行头,工作正常 - 立即响应。
我还将有一个带有常规点击 GUI 的标准应用程序,并且不会预见到这方面的问题。
我目前正在研究的是这两者的混合体 - 它将从运行框(或类似的启动器)启动,可能带有参数,并且只需要有效地响应状态消息,可以通过按键。

后一个问题正是问题的焦点所在。

虽然我并不反对将现有的命令行版本与 shell 脚本一起使用(尽管我认为没有必要!),但现有的答案似乎表明,事情对我来说并不像其他人那样运行得那么快 - 之一这个例子对我来说需要 1460 毫秒,而我则需要 70 毫秒——这是一个显着的差异。


延迟的原因是Java是一种解释性语言,启动新的JVM(解释器)需要时间

实际上创建框架只需要不到几毫秒(在我的机器上大约 70 毫秒)。

如果要在 Java 应用程序中使用它,则无需担心。这几乎是瞬时的(您应该使用 JDialog 或 JOptionPane )

如果这不会在 Java 应用程序中使用,并且 2 秒时间太多了(我认为这太多了),那么您应该考虑使用其他工具来完成这项工作。

这是我在代码中测量时间的方法:

import javax.swing.JFrame;

public class Dialog {

    public static void main( String[] args ) {
        long start = System.currentTimeMillis();
        JFrame frame = new JFrame( "DialogDemo" );
        System.out.println( "Took: " + (  System.currentTimeMillis() - start   ) );
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建 Java 消息对话框(swing/awt/其他)的最快方法? 的相关文章

随机推荐