Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将消息框添加到在某个点打开和关闭的Java程序中_Java_Swing_Dialog_Runtime - Fatal编程技术网

将消息框添加到在某个点打开和关闭的Java程序中

将消息框添加到在某个点打开和关闭的Java程序中,java,swing,dialog,runtime,Java,Swing,Dialog,Runtime,我能够从用户那里获得输入并自己显示最终产品,但我想添加一条“忙碌”消息,在代码中的某个点显示,然后在某个点关闭 希望通过在我的代码中显示它会更容易解释。这是一个排序算法,排序时间显然会有所不同 public static void main(String[] args) throws Exception{ //Code that doesn't matter for this question... String userInput = JOptionPane

我能够从用户那里获得输入并自己显示最终产品,但我想添加一条“忙碌”消息,在代码中的某个点显示,然后在某个点关闭

希望通过在我的代码中显示它会更容易解释。这是一个排序算法,排序时间显然会有所不同

public static void main(String[] args) throws Exception{

        //Code that doesn't matter for this question...

        String userInput = JOptionPane.showInputDialog("Please enter the amount of input you would like to test (integer): ");

    // Code that doesn't matter for this question....

    //
    // Open dialogue box here that says, "Busy sorting" and stays open 
    // 
        long startTime = System.currentTimeMillis();
            sort(shorts);
        long endTime = System.currentTimeMillis();

    //
    // The dialogue box closes here without the user having to press anything
    //

    // This displays the final output.
            JOptionPane.showMessageDialog(null, error + "The runtime for " + input + " short integers is " + (endTime-startTime) + " milliseconds.", "Final Runtime", JOptionPane.PLAIN_MESSAGE);

        }

希望这个问题是可以理解的

您需要使用
SwingWorker
类在GUI的单独线程上运行长任务。运行时,最好显示
JProgressBar
或类似内容

这可能就是您要找的


啊,是的,记住jzd关于Swing中穿线的重要评论

我可能不会使用JOptionPane。因为在显示忙消息时,程序将不会执行。您最好使用文本字段和按钮创建一个更复杂的swing应用程序。当用户单击按钮时,系统会在窗口底部显示一条忙消息。

阅读Swing tutorrial上的部分以了解一些示例


或者您可能想尝试使用。

正如我在问题中提到的,您应该查看swing教程。这真的很好,而且很容易理解

JOptionPane是JavaSwing的一部分,不过,正如其他人所说,它可能不是显示繁忙状态的最佳方法。正如其他人所说,进度条可能是一个不错的选择,这取决于您的需要,但当您阅读本教程时,您将看到其他选项


祝你好运

你要什么?关于如何用Java编写GUI的指针(您看过Swing教程了吗)?或者其他什么?只是帮助你如何编写一个简单的GUI。我将查看Swing教程。这比使用JOPtionPane更好吗?听起来不错。但是,这会影响我的原始程序的性能吗?我的程序的目的是计算我们算法的运行时间。运行单独的线程会减慢速度吗?同意,对于SwingWorker实例,您可以添加PropertyChangeListener,这允许…-1,您不会为此使用JFrame。应用程序通常应该只有一个JFrame。辅助窗口通常是JDialog。