这样例如你想改变label组件的文字你不能仅仅调用jlabel的settext方法相反你必须确认settext调用发生在事件处理线程中而这正是javaxswingtime类派的上用场的地方
为了说明这第二种情况下面的程序显示一个增加的计数器的值美半秒钟计数器的数值增加并且新的数值被显示
importjavaxswing*;
importjavaawt*;
importjavaawtevent*;
publicclasscount
{
publicstaticvoid
main(stringargs)
{
finalstringurlstring=args;
finalstringmessage=args;
threadthread=newthread()
{
publicvoidrun()
{
try
{
urlurl=newurl(urlstring);
urlconnectionconnection=
urlopenconnection();
inputstreamreaderisr=new
inputstreamreader(
connectiongetinputstream());
bufferedreaderreader=
newbufferedreader(isr);
intcount=;
while(readerread()!=)
{
count++;
}
systemoutprintln(sizeis:
+count);
readerclose();
}catch(malformedurlexceptione)
{
systemerrprintln(badurl:
+urlstring);
}catch(ioexceptione)
{
systemerrprintln
(i/oproblems);
}
}
};
threadstart();
runnablerunnable=newrunnable()
{
publicvoidrun()
{
while(true)
{
systemoutprintln(message);
try
{
threadsleep();
}catch(interruptedexceptione)
{
}
}
}
};
threadthread=newthread(runnable);
threadstart();
try{
systemoutprintln
(pressentertostop);
systeminread(newbyte);
}catch(ioexceptione)
{
systemoutprintln(i/oproblems);
}
systemexit();
}
}
因为有多种方式来处理线程你选用哪种技术取决于你和你面临的条件要成为一个有效的java编程人员尽管你通常不必学习java编程语言的所有内容和核心库但是线程是一个例外你越早了解线程如何工作和如何使用线程你将越早了解java程序如何工作和交互
[] []