首先,我很抱歉我的英语不好。我在讲我语言的论坛上写了我的问题。但我没有得到答案。我希望你能帮助我。
当我编写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循环开始之前花费时间。谢谢所有花时间帮助我的人答案 0 :(得分:1)
打印后请致电System.out.flush()
,或使用System.err.println
。
System.out
是一个缓冲流,在缓冲区已满,刷新时或其他时间系统发现有用时打印。 System.err
是无缓冲的,也是调试和诊断信息的首选流,例如进度信息。
答案 1 :(得分:1)
Erwin Bolwidt已经提到使用System.our.flush()。输出的工作方式很大程度上取决于您使用的OS(和终端)的类型。例如,对于* nix系统,您可以考虑某种类似于Curses的库(它最初是一个C库,但我确信有一些Java实现)。