作者SuM0m0 (Part Time Player)
看板java
标题Re: [问题] swing上的问题
时间Mon Mar 23 22:02:58 2009
※ 引述《H45 (!H45)》之铭言:
※ 引述《del680202 (DAINA)》之铭言:
43
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.247.13
1F:推 del680202:看了一下原码之後 的确是这个原因 感激不尽 03/23 17:43
2F:→ H45:那个...多绪同步在 swing 有好用的 SwingUtilities.invoke.... 03/23 19:12
藉机请问一下,Swing中为了不让处理时间过长导致整个视窗停住。
所以都会希望写另一个thread来跑,可是如果是用invokeLater()方法,
那结果它还是会排到EDT里面,视窗依旧会停住,直到处理完毕。
不过就我所知一般其实都不会这样做,而是会利用SwingWorker的
doInBackground()方法来作到这样的效果。
一般来说运作很正常也没什麽问题,可是发现用了SwingWorker.execute()之後,
一样会跑出因为多执行序而发生的ArrayIndexOutOfBound的Exception,
(我不确定是不是我有两个以上的SwingWorker在跑,但我有用一些方法让
其中一个一定会先执行完毕後在让另一个开始,另外我的状况是发生在JTable)
或者是我使用上有什麽疏忽呢?
3F:推 del680202:那个我试过 但是达不到我想要的效果.... 03/23 21:06
另原po的状况应该可以用SwingWorker的 publish() & process()试试看,
不过会不会有Exception我就不知道了... 应该是不会,应该...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.229.2
※ 编辑: SuM0m0 来自: 118.169.229.2 (03/23 22:09)