まず、私の悪い英語を申し訳ありません。私は私の言語を話すフォーラムで自分の問題を書きました。しかし、私は答えを得ていませんでした。あなたが私を助けることを願っています。forループ内でSystem.out.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()コマンドがその後に見えます。
EDIT:どのようにループに進捗を書き込むべきですか?
EDIT:私は問題を解決しました。 System.out.println()コマンドは正常に動作します。 forループが始まる前にreplaceコマンドがあります。プログラムは、forループが始まる前に時間を費やします。
[SynchronizationとSystem.out.println]の複製があります。(http://stackoverflow.com/questions/9459657/synchronization-and-system-out-println) – Guy
@Guy同期やマルチスレッドはありませんが、 OPのコードはここでは重複は関係ありません –
@ErwinBolwidtおそらくもっと正確な重複がありますが、 'System.out.println'は同期されていないということです。そのため、ループが終了した後にのみ出力が表示されます。 – Guy