简体   繁体   中英

Progress bar Java doesn't update

I have tried a lots of tutorial and examples listed here, but doesn't work with me, i think this because i use netbeans.

I tried :

let me show my code.

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    vet = new int[Integer.valueOf(tamVet.getText())];
    ordenado = new int[Integer.valueOf(tamVet.getText())];
    metUtilizado = (String) CBMetodo.getSelectedItem();
    if (CBMetodo.getSelectedItem() == "Ordenado") {
        for (int i = 0; i < Integer.valueOf(tamVet.getText()); i++) {
            vet[i] = i;
        }
    } else if (CBMetodo.getSelectedItem() == "Reverso") {
        for (int i = 0; i < Integer.valueOf(tamVet.getText()); i++) {
            vet[i] = -i;
        }
    } else if (CBMetodo.getSelectedItem() == "Aleatório") {
        Random randomGenerator = new Random();
        for (int i = 0; i < Integer.valueOf(tamVet.getText()); i++) {
            vet[i] = randomGenerator.nextInt(Integer.valueOf(tamVet.getText()));
        }
    }
    vetList.clear();

    for (int i = 0; i < vet.length; i++) {
        vetList.add("[" + i + "] " + String.valueOf(vet[i]));
        PB.setValue(((i+1)*100)/vet.length); // i want update here
    }
} 

i am new on Java i want to UPDATE the value on this ...can anyone help me with this problem?

First: If you are trying to update your PB value and show it at same thread, you can have some issues (it will display the content only in the end of the loop).

Best way is to split One thread for showing the user-interface and another thread to update the variable that holds your progress bar value.

Try this, using appropriate comparison for java.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    vet = new int[Integer.valueOf(tamVet.getText())];
    ordenado = new int[Integer.valueOf(tamVet.getText())];
    metUtilizado = (String) CBMetodo.getSelectedItem();
    if (CBMetodo.getSelectedItem().equals("Ordenado")) {
        for (int i = 0; i < Integer.valueOf(tamVet.getText()); i++) {
            vet[i] = i;
        }
    } else if (CBMetodo.getSelectedItem().equals("Reverso")) {
        for (int i = 0; i < Integer.valueOf(tamVet.getText()); i++) {
            vet[i] = -i;
        }
    } else if (CBMetodo.getSelectedItem().equals("Aleatório")) {
        Random randomGenerator = new Random();
        for (int i = 0; i < Integer.valueOf(tamVet.getText()); i++) {
            vet[i] = randomGenerator.nextInt(Integer.valueOf(tamVet.getText()));
        }
    }
    vetList.clear();
    new Thread()
    {
        public void run() {
            for (int i = 0; i < vet.length; i++) {
                int N_DIVISOES = vet.length/4;
                vetList.add("[" + i + "] " + String.valueOf(vet[i]));
                PB.setValue((i/N_DIVISOES) * N_DIVISOES); // i want update here
            }
        }
     }.start();
} 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM