我对 Java 很陌生,尤其是在 Java 中使用 GUI。我想在我的程序中放置一个进度条,每次完成一定数量的工作后它都会更新它的值。现在我有一个在按下时执行方法的按钮,并且每次在该方法中完成某些工作后,我都会放置 setValue() 函数(具有我想要的值)。但是,当我按下按钮时,按钮似乎在方法继续时被按下(该方法需要一段时间才能完成执行),并且在 ButtonListener 中完成所有其他事情之前,进度条不会更新,所以它完成后直接进入100%)。
我究竟做错了什么?
提前致谢。
我对 Java 很陌生,尤其是在 Java 中使用 GUI。我想在我的程序中放置一个进度条,每次完成一定数量的工作后它都会更新它的值。现在我有一个在按下时执行方法的按钮,并且每次在该方法中完成某些工作后,我都会放置 setValue() 函数(具有我想要的值)。但是,当我按下按钮时,按钮似乎在方法继续时被按下(该方法需要一段时间才能完成执行),并且在 ButtonListener 中完成所有其他事情之前,进度条不会更新,所以它完成后直接进入100%)。
我究竟做错了什么?
提前致谢。
也就是说,很可能是因为您在主线程中完成所有工作,所以它会挂起您的 UI,直到所有工作完成。你不应该这样做。您应该为此类操作使用单独的EDT。您应该尝试在单独的 EDT 中执行更新进度条工作。用于SwingUtilities.invokeLater(Runnable r)
此。