System.out.println() 在 for 循环中无法正常工作

System.out.println() doesn't work as i want in the for loop

首先,我很抱歉我的英语不好。我在使用我的语言的论坛上写下了我的问题。但我没有得到答案。我希望你能帮助我。

当我编写 for 循环时,System.out.println()JTextArea.setText() 命令在循环结束时开始工作。我的部分代码:

for(int pixelCount = 0;pixelCount<pixelLength;pixelCount++){

  System.out.println("Progress..:"+pixelCount+"/"+pixelLength);



  int x = pixelCount%Image.getWidth();
  int y = pixelCount/Image.getWidth();
  if(isChange==1){
    if(new Color(Image.getRGB(x, y)).getRed()%2==0){
        Image.setRGB(x, y,new Color(new Color(Image.getRGB(x, y)).getRed()+1,
                                    new Color(Image.getRGB(x, y)).getGreen(),
                                    new Color(Image.getRGB(x, y)).getBlue(),
                                    new Color(Image.getRGB(x, y)).getAlpha()).getRGB());}
}

循环有时很长。所以我将它打印在屏幕上以查看循环的进度。当我按下按钮时循环开始。但是当我按下按钮时,System.out.println() 命令会在之后查看。

编辑:我应该如何写循环中的进度?

编辑:我解决了问题,朋友们。 System.out.println () 命令工作正常。在 for 循环开始之前有一个替换命令。在 for 循环开始之前,程序会在那里停留一段时间。感谢所有花时间帮助我的人

打印后调用 System.out.flush(),或使用 System.err.println

System.out 是一个缓冲流,它会在缓冲区已满、刷新缓冲区或系统认为有用的其他时间打印。 System.err 是无缓冲的,也是调试和诊断信息(如进度信息)的首选流。

Erwin Bolwidt 已经提到 System.our.flush() 的使用。输出的工作方式很大程度上取决于您使用的 OS (和终端)的类型。例如,对于 *nix 系统,您可以考虑某种类似于 Curses 的库(它最初是一个 C 库,但我确信有一些 Java 实现)。