Прогресс бар не меняется - PullRequest
0 голосов
/ 21 июня 2011

Мне известны все другие подобные вопросы, но я не могу решить проблему.Я пробовал "bar.repaint ();"и "bar.update (bar.getGraphics ());"но ни один из них, похоже, не работает.

Если у кого-то есть время взглянуть на него, я был бы очень благодарен!Это действительно беспокоит меня, я пытаюсь решить это часами.

Это в основном таймер выключения.Вы вводите часы и секунды, и он начинает обратный отсчет до выключения компьютера.У этого также есть индикатор выполнения, который является проблемой.Кажется, он не хочет перекрашиваться через каждую секунду.

Код много, поэтому я решил просто загрузить все файлы (2 файла).

speedyshare.com/files/29072975/files.zip

Заранее спасибо!

РЕДАКТИРОВАТЬ:

Фрагмент кода, который не работает:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    try{
        if(varHours.getText() != null && varMins.getText() != null){
            Thread countDownThread = new Thread(new Countdown(Integer.parseInt(varHours.getText()), Integer.parseInt(varMins.getText())));
            int totalSecs = (Integer.parseInt(varHours.getText())*60*60) + (Integer.parseInt(varMins.getText())*60);
            shutdownProgress = new javax.swing.JProgressBar(0, totalSecs);
            countDownThread.start();
        }else{
            javax.swing.JOptionPane.showMessageDialog(null, "Please supply both fields!", "One or more fields were not supplied", javax.swing.JOptionPane.INFORMATION_MESSAGE);
        }
    }catch(Exception ex){
        javax.swing.JOptionPane.showMessageDialog(null, "Error!\nCould not launch method countDown!", "Error!", javax.swing.JOptionPane.ERROR_MESSAGE);
    }
}//GEN-LAST:event_jButton1ActionPerformed

1 Ответ

1 голос
/ 21 июня 2011

В jButton1ActionPerformed вы установите shutdownProgress. Однако это новый JProgressBar, а не созданный в initComponents(). Таким образом, любые изменения, которые вы позже вносите в shutdownProgress, вносятся в JProgressBar, который не отображается.

Во-вторых, внесение изменений в компонент Swing из потока, отличного от EDT, является главным нет. Используйте SwingUtilitities .invokeLater .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...