我的问题与此有关SwingUtilities.invokeLater.我应该什么时候使用它?每次需要更新GUI组件时是否必须使用?它到底是做什么的?是否有替代品,因为它听起来不直观,并添加看似不必要的代码?
我正在编写代码以计算Pi的值,有时可能需要很长时间才能计算出。我添加了一个进度条以显示进度,但是代码完全按照我的指示执行,它在计算后打开进度条,然后立即将其关闭(当值达到100时,它会关闭。)我试图粘贴代码对于进度条进入循环,但是不久我意识到解决了该问题,但是创建了多个进度条窗口。如果放在计算之前,进度条将保持为0(很明显),我在下面显示了我的代码:
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.border.Border;
import java.util.Scanner;
public class PicCalc
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
double i = 0;
double stage = 1;
int iterations = 1;
int x = 3; //Simply a variable to calculate pi
double y = -1.0; // Another variable for pi
double myPi; //This is my calculation of Pi, don't eat it.
System.out.println("Hello! I calculate Pi and compare it to …Run Code Online (Sandbox Code Playgroud)