bar.setValue(50); for (int i = 0;i<1000;i++) { System.out.println("i= " +i); } } } private JButton button = new JButton("Next Form"); private JTextArea text = new JTextArea(5,30); private JProgressBar bar = new JProgressBar(0,100); private int current = 0; }
因为调用start以后,线程就开始执行,这过程不是阻塞式的,即在线程启动后,主线程和副线程各跑各的,没有同步,你想想一个for循环当然眨眼就完了,
好好想想,呵呵 ,
你的线程还sleep(100),呵呵,当然追不上for了
要想同步起来
呵呵,看看我改的代码
顺便说一句,你的代码直接放到jbuilder9里有错误呵呵,
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/import javax.swing.JFrame;
import java.awt.*;
import javax.swing.JButton;
import java.awt.event.*;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
import java.io.IOException;public class Frame1 extends JFrame {
private JButton button = new JButton("Next Form");
private JTextArea text = new JTextArea(5,30);
private JProgressBar bar = new JProgressBar(0,100);
private int current = 0; public Frame1(String strTitle) {
super(strTitle);
} public static void main (String[] args)
{
Frame1 frame = new Frame1("Juice ProgressBar");
frame.init();
} public void init ()
{
Container content = getContentPane(); content.setLayout(new BorderLayout());
Toolkit theKit = this.getToolkit();
Dimension wndSize = theKit.getScreenSize();
setBounds(wndSize.width/4,wndSize.height/4,
wndSize.width/2,wndSize.height/2); button.addActionListener(new HandleControl()); content.add(button,BorderLayout.NORTH); text.setAutoscrolls(true); content.add(text,BorderLayout.CENTER); bar.setStringPainted(true); content.add(bar,BorderLayout.SOUTH); pack(); show(); } class HandleControl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{ Thread time1 = new Thread(new Timer());
time1.start(); }
} class Timer implements Runnable
{int i=10;
public void run()
{
try
{
while (current<100)
{
text.setText(current + "/100 has finished \n");
Thread.sleep(100);
bar.setValue(current ++);
System.out.println(i);
i=i+10;
}
if (current == 100)
{
Frame1 frame2 = new Frame1("Juice");
frame2.init();
}
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}}
附代码:
import javax.swing.JFrame;
import java.awt.*;
import javax.swing.JButton;
import java.awt.event.*;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
import java.io.IOException;public class Frame1 extends JFrame { public Frame1(String strTitle) {
super(strTitle);
} public static void main (String[] args)
{
Frame1 frame = new Frame1("Juice ProgressBar");
frame.init();
} public void init ()
{
Container content = getContentPane(); content.setLayout(new BorderLayout());
Toolkit theKit = this.getToolkit();
Dimension wndSize = theKit.getScreenSize();
setBounds(wndSize.width/4,wndSize.height/4,
wndSize.width/2,wndSize.height/2); button.addActionListener(new HandleControl()); content.add(button,BorderLayout.NORTH); text.setAutoscrolls(true); content.add(text,BorderLayout.CENTER); bar.setStringPainted(true); content.add(bar,BorderLayout.SOUTH); pack(); show(); } class HandleControl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
bar.setValue(50);
for (int i = 0;i<1000;i++)
{
System.out.println("i= " +i);
}
}
} private JButton button = new JButton("Next Form");
private JTextArea text = new JTextArea(5,30);
private JProgressBar bar = new JProgressBar(0,100);
private int current = 0;
}
小弟之见。