用netBeans做了一个程序,但是进度条就是不显示,总是显示一个圆圈,我已经把indeterminate属性设置成false了,   progressbar.setOrientation(JProgressBar.HORIZONTAL);
   progressbar.setMinimum(0);
   progressbar.setMaximum(100);
   progressbar.setValue(0);大致属性就是这样设置的,怎么才能让他显示出来那,谢谢!!!

解决方案 »

  1.   

    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JProgressBar;
    import javax.swing.SwingUtilities;public class SwingProgressBarExample extends JPanel {  JProgressBar pbar;  static final int MY_MINIMUM = 0;  static final int MY_MAXIMUM = 100;  public SwingProgressBarExample() {
        pbar = new JProgressBar();
        pbar.setMinimum(MY_MINIMUM);
        pbar.setMaximum(MY_MAXIMUM);
        add(pbar);
      }  public void updateBar(int newValue) {
        pbar.setValue(newValue);
      }  public static void main(String args[]) {    final SwingProgressBarExample it = new SwingProgressBarExample();    JFrame frame = new JFrame("Progress Bar Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(it);
        frame.pack();
        frame.setVisible(true);    for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) {
          final int percent = i;
          try {
            SwingUtilities.invokeLater(new Runnable() {
              public void run() {
                it.updateBar(percent);
              }
            });
            java.lang.Thread.sleep(100);
          } catch (InterruptedException e) {
            ;
          }
        }
      }
    }
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.text.html.*;public class SwingProgressBar{
        final static int interval = 1000;
      int i;
      JLabel label;
        JProgressBar pb;
        Timer timer;
        JButton button;    public SwingProgressBar() {
        JFrame frame = new JFrame("Swing Progress Bar");
            button = new JButton("Start");
            button.addActionListener(new ButtonListener());    pb = new JProgressBar(0, 20);
            pb.setValue(0);
            pb.setStringPainted(true);    label = new JLabel("Roseindia.net");
        
        JPanel panel = new JPanel();
            panel.add(button);
            panel.add(pb);        JPanel panel1 = new JPanel();
            panel1.setLayout(new BorderLayout());
            panel1.add(panel, BorderLayout.NORTH);
        panel1.add(label, BorderLayout.CENTER);
            panel1.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
            frame.setContentPane(panel1);
            frame.pack();
            frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        //Create a timer.
            timer = new Timer(interval, new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
            if (i == 20){
              Toolkit.getDefaultToolkit().beep();
              timer.stop();
              button.setEnabled(true);
              pb.setValue(0);
              String str = "<html>" + "<font color=\"#FF0000\">" + "<b>" + 
    "Downloading completed." + "</b>" + "</font>" + "</html>";
              label.setText(str);
            }
            i = i + 1;
                    pb.setValue(i);
                }
            });
        }    class ButtonListener implements ActionListener {
            public void actionPerformed(ActionEvent ae) {
                button.setEnabled(false);
          i = 0;
          String str = "<html>" + "<font color=\"#008000\">" + "<b>" + 
    "Downloading is in process......." + "</b>" + "</font>" + "</html>";
          label.setText(str);
                timer.start();
            }
        }
        
        public static void main(String[] args) {
            SwingProgressBar spb = new SwingProgressBar();
        }
    }
      

  3.   

    是在NetBeans里, 预览模式和运行模式的结果不一样吧?
      

  4.   

    你好,在netbeans生成的form代码中,progressBar是被设置为不可见的,你可以在你的***View.java代码中找到:
    progressBar.setVisible(false);
    如果想让他运行时便可见,把它改成
    progressBar.setVisible(true);那个圆圈是进程动画,在resource文件夹中那16张圆圈图片就是用来做动画效果的。
      

  5.   

    好像还是有问题,我仔细的看了看自动生成的代码,好像是用java.beans.PropertyChangeListener实现的动画和进度条,他下面有几个if判断,但是有一点我还是看不懂public void propertyChange(java.beans.PropertyChangeEvent evt) {
                    String propertyName = evt.getPropertyName();
                    if ("started".equals(propertyName)) {这里面的字符串started是从哪里得到的呢?
      

  6.   

    像下面这段代码,if ("background".equals(property))这句代码,从程序中看不出有那个属性叫 background呀! 但是我在控制台把property打印出来,property确实是等于background,这到底是怎么回事高手过来帮忙看一下!!!
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;public class BoundSample {
      public static void main(String args[]) {
        JFrame frame = new JFrame("Button Sample");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        final JButton button1 = new JButton("Select Me");
        final JButton button2 = new JButton("No Select Me");    ActionListener actionListener = new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
            JButton button = (JButton) actionEvent.getSource();
            int red = (int) (Math.random() * 255);
            int green = (int) (Math.random() * 255);
            int blue = (int) (Math.random() * 255);
            button.setBackground(new Color(red, green, blue));
          }
        };    PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
          public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
            String property = propertyChangeEvent.getPropertyName();
            System.out.println(property);
            if ("background".equals(property)) {
              button2.setBackground((Color) propertyChangeEvent.getNewValue());
            }
          }
        };    button1.addActionListener(actionListener);
        button1.addPropertyChangeListener(propertyChangeListener);
        button2.addActionListener(actionListener);    Container contentPane = frame.getContentPane();
        contentPane.add(button1, BorderLayout.NORTH);
        contentPane.add(button2, BorderLayout.SOUTH);
        frame.setSize(300, 100);
        frame.setVisible(true);
      }
    }