Я новичок в Swing, и я пытался сделать это:
После нажатия кнопки JButton программа начнет выполнять итерацию по сотням элементов, занимая 1 секунду для обработки каждого из них, и после завершения каждогоодин он должен обновить метку, чтобы показать количество уже обработанных элементов.
Проблема в том, что текст метки не обновляется, пока цикл не завершит итерацию по всем элементам.
Я искал в Интернетеи, очевидно, это потому, что это выполняется в том же потоке, поэтому я создал новый поток для обработки данных и обновления переменной, которая будет использоваться в метке (количество обработанных файлов).
Но это не такт работа.Затем я даже создал другой поток, который я запускаю после предыдущего, который просто перерисовывает ярлык.Все еще ничего не работает.
Код такой:
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try { SwingUtilities.invokeLater(validateFiles); }
}); }
Runnable validateFiles = new Runnable() {
@Override
public void run() {
while(x_is_not_100) {
processLoadsOfStuff();
label.setText(x); }
}
};
Можете ли вы помочь мне с этим?