有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java进度条未更改

我知道所有其他类似的问题,但我似乎无法解决这个问题。我试过“bar.repaint();”和“bar.update(bar.getGraphics());”但它们似乎都不起作用

如果有人有时间快速看一看,我会非常感激!这真的让我烦透了,我已经试着解决它好几个小时了

它基本上是一个关机计时器。你输入小时和秒,它倒计时,直到它关闭计算机。它还有一个progressbar,这就是问题所在。它似乎不想在每秒钟后重新粉刷自己

它有很多代码,所以我决定只上传所有文件(2个文件)

快速共享。com/files/29072975/files。拉链

提前谢谢

编辑:

不起作用的代码片段:

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. # 1 楼答案

    jButton1ActionPerformed中设置shutdownProgress。但是,这是一个新的JProgressBar,而不是在initComponents()中创建的。因此,您以后对shutdownProgress所做的任何更改都会对未显示的JProgressBar进行

    其次,从EDT以外的线程更改Swing组件是一个主要的禁忌。 使用SwingUtilitities .invokeLater