我试图创建这个进度条:
public class ProgressBar extends JFrame{
private JButton fine = new JButton("Chiudi");
final JProgressBar jp;
JPanel body;
JLabel banner1;
JLabel banner2;
JPanel testo;
JTextArea areatesto;
JPanel provapannello;
JTextArea provatesto;
JPanel pannellofine;
public ProgressBar() {
super("loading");
setSize(440, 400);
setResizable(true);
Container content = getContentPane();
content.setBackground(Color.YELLOW);
body = new JPanel();
body.setLayout(new FlowLayout());
ImageIcon image1 = new ImageIcon("prova1.png");
banner1 = new JLabel();
banner2 = new JLabel();
banner1.setIcon(image1);
JTextArea prova = new JTextArea("bar", 2, 40);
prova.setBackground(Color.LIGHT_GRAY);
prova.setLineWrap(true);
body.add(banner1);
body.add(prova);
body.add(banner2);
banner.setBounds(30, 80, 120, 120);
testo = new JPanel();
areatesto = new JTextArea("Attendi Per Favore, Sto Preparando Il Tuo PDF", 2, 33);
areatesto.setLineWrap(true);
testo.add(areatesto);
ImagePanel progress_background = new ImagePanel("p.jpg");
UIManager.put("ProgressBar.background", new Color(29, 29, 29));
UIManager.put("ProgressBar.foreground", new Color(16, 95, 173));
UIManager.put("ProgressBar.selectionBackground", new Color(214, 214, 214));
UIManager.put("ProgressBar.selectionForeground", new Color(29, 29, 29));
jp = new JProgressBar();
jp.setUI(new BasicProgressBarUI());
jp.setBounds(0, 205, 434, 25);
jp.setMinimum(0);
jp.setMaximum(100);
jp.setStringPainted(true);
jp.setBorder(null);
progress_background.add(jp);
provapannello = new JPanel();
provatesto = new JTextArea("prova", 2, 70);
provatesto.setBackground(Color.LIGHT_GRAY);
provapannello.setBounds(0, 226, 500, 100);
provapannello.add(provatesto);
content.add(provapannello);
content.add(progress_background);
pannellofine = new JPanel();
pannellofine.add(fine);
pannellofine.setBounds(340, 330, 100, 100);
pannellofine.setVisible(false);
content.add(pannellofine);
content.add(testo);
content.add(body);
Thread runner;
jp.setValue(0);
setVisible(true);
public void setValue(final int j) {
Runnable target = new Runnable() {
@Override
public void run() {
jp.setValue(j);
}
};
SwingUtilities.invokeLater(target);
}
public static void main(String Args[]) {
ProgressBar p = new ProgressBar();
int i = 0;
while(true){
System.out.println("work");
try {
Thread.sleep(500);
} catch (InterruptedException ex) { }
p.setValue(i++);
}
}
我尝试使用“setValue”方法更改 ProgressBar 的值,但进度条没有增加,“while”循环到无穷大,但我看不到任何变化。怎么了?