将消息框添加到在某个点打开和关闭的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。