System.out.println()在for循环

时间:2017-01-26 13:12:07

标签: java for-loop println

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

当我编写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循环开始之前有一个replace命令。程序在for循环开始之前花费时间。谢谢所有花时间帮助我的人

2 个答案:

答案 0 :(得分:1)

打印后请致电System.out.flush(),或使用System.err.println

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

答案 1 :(得分:1)

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