先贴代码:import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;public class TestSwing extends JFrame { private JButton btn;
private JProgressBar bar; /**
 * @param args
 */
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
TestSwing thisClass = new TestSwing();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
} /**
 * This is the default constructor
 */
public TestSwing() {
super();
this.setSize(200, 100);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
btn = new JButton("haha");
btn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
             bar.setVisible(true);
try {
                    SwingUtilities.invokeLater(new Thread() {
                        public void run() {
                            try {
                                Thread.sleep(2000);
                            } catch (InterruptedException e1) {
                                e1.printStackTrace();
                            }
                        }
                    });
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
                //在这里关闭窗口
}
});
bar = new JProgressBar();
bar.setIndeterminate(true);
bar.setVisible(false);
panel.add(btn);
panel.add(bar);
this.setContentPane(panel);
}}我希望一点击按钮 进度条就显示而且中间的方块来回移动 但是目前是2秒后才会来回移动 而且我希望2秒后整个窗口关闭(不是System.exit(0);) 望亲们帮忙,多谢了!

解决方案 »

  1.   

    说实话。。懂swing 的真不多, 帮你顶一下吧
      

  2.   


    import java.awt.FlowLayout;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JProgressBar;
    import javax.swing.SwingUtilities;public class TestSwing extends JFrame {    private JButton btn;
        private JProgressBar bar;    /**
         * @param args
         */
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    TestSwing thisClass = new TestSwing();
                    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    thisClass.setVisible(true);
                }
            });
        }    /**
         * This is the default constructor
         */
        public TestSwing() {
            super();
            this.setSize(200, 100);
            JPanel panel = new JPanel();
            panel.setLayout(new FlowLayout());
            btn = new JButton("haha");
            btn.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                   bar.setVisible(true);
                        new Thread() {
                            public void run() {
                                try {
                                    Thread.sleep(2000);
                                } catch (InterruptedException e1) {
                                    e1.printStackTrace();
                                }
                            }
                        }.start();
                    
                    //在这里关闭窗口
                }
                
            });
            bar = new JProgressBar();
            bar.setIndeterminate(true);
            bar.setVisible(false);
            panel.add(btn);
            panel.add(bar);
            this.setContentPane(panel);
        }}这样可以立即动,但是不用System.exit关闭不会……
      

  3.   

     btn.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    bar.setVisible(true);
                    try {
                       (new Thread() {
                            public void run() {
                                try {
                                    Thread.sleep(2000);
                                } catch (InterruptedException e1) {
                                    e1.printStackTrace();
                                }
                                
                                Test.this.setVisible(false);
                            }
                        }).start();
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }
            });