Во-первых, извините за мой плохой английский. Я написал свою проблему на форумах, которые говорят на моем языке. Но я не получил ответа. Я надеюсь, что вы можете мне помочь.System.out.println() не работает, поскольку я хочу в цикле for
Когда я пишу цикл 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. Спасибо всем, кто нашел время и помог мне
Возможный дубликат [Синхронизация и System.out.println] (http://stackoverflow.com/questions/9459657/synchronization-and-system-out-println) – Guy
@Guy отсутствует синхронизация или многопоточность, но в OP, так что ваш дубликат здесь не имеет значения. –
@ErwinBolwidt, вероятно, более точные дубликаты, но идея состоит в том, что 'System.out.println' не синхронизирован, поэтому вывод появляется только после завершения цикла. – Guy