作者popcorny (毕业了..@@")
看板java
标题Re: [问题] 如何在视窗输入参数後,继续执行main?
时间Wed Dec 5 14:00:03 2012
※ 引述《Makoto0813 (多愁善感的中学二年级生)》之铭言:
: 可能我讲得不够清楚
: 我是照着书本上做的,所以该有的lisener或handler都有放,虽然是初学有些不是很懂
: 我写这个程式的主要用途是将一个资料夹里的影片档一张张做处里
: 要是没法处理,就在try...catch结构里面手动输入参数让他还是能生出东西
: 後来我查到问题可能在我写的GUI是JFrame,他不支援同步处理,要是我没法让main
: 去等待,他会没等我输入完,main还是跑他自己的往下个for loop走
: 继续跳下一张图然後不断产生新的输入介面视窗这样...
: 在网路上刚好看到有人也有一样的问题,有人的回应是说可以将JFrame换成JDialog,
: 它可以让main去等待,不然就只能实作多执行绪的同步处理了(没做过...)
基本上main的执行是一个肠子通到底的
GUI的行为是event driven的,有事件发生则callback
硬要把这两个整在一起本来就不是太好,
建议还是就当做纯GUI application去写比较恰当
如果真的还是坚持要用你的写法
比较正确的做法是new一个Object当做同步用
public class MyFrame
{
public Object sync = new Object();
//...
}
main这边要呼叫sync.wait()
而GUI这边输入完成後呼叫sync.notify()
用while loop真的有点暴力..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.251.162
※ 编辑: popcorny 来自: 220.135.251.162 (12/05 14:12)
※ 编辑: popcorny 来自: 220.135.251.162 (12/05 14:12)
※ 编辑: popcorny 来自: 220.135.251.162 (12/05 14:13)
1F:推 Makoto0813:感谢各位版友的意见 很有帮助! 12/05 14:21
2F:→ laechan:while 比较像古早时期的写法 12/06 12:00