Jeg har et problem med en progress bar i Eclipse. Den modtager de værdier jeg sender men den opdateres ikke med de værdier før while loppet er over. Jeg har søgt på Google men forstår det ikke rigtigt hvad man skal gøre. Nogen der kan hjælpe? Her er lidt flere oplysninger om mit problem:
Kode: Vælg alt
btnProress.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
progressBar.setMaximum(50000);
while (counter <= progressBar.getMaximum()){
randomText = randomText + "t e s t";
System.out.println(counter); //eller System.out.println(progressBar.getValue());
counter++;
progressBar.setValue(counter);
}
}
});
Kode: Vælg alt
package sandbox;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JProgressBar;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class testAfProgressBar extends JFrame {
private JPanel contentPane;
public int counter;
private String randomText;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
testAfProgressBar frame = new testAfProgressBar();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public testAfProgressBar() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 131);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JProgressBar progressBar = new JProgressBar();
contentPane.add(progressBar, BorderLayout.NORTH);
JButton btnProress = new JButton("Start en proces");
btnProress.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
progressBar.setMaximum(50000);
while (counter <= progressBar.getMaximum()){
randomText = randomText + "t e s t";
System.out.println(counter);
counter++;
progressBar.setValue(counter);
}
}
});
contentPane.add(btnProress, BorderLayout.CENTER);
}
}