作者Makoto0813 (多愁善感的中学二年级生)
看板java
标题[问题] 如何在视窗输入参数後,继续执行main?
时间Wed Dec 5 09:18:34 2012
我写了一个视窗介面来输入我这个程式要的参数
我知道用JOption也可以...只是想要一次全部输入秀出来,所以还是用JFrame
,我设定一个布林变数done来判断是否有完成输入,在视窗开启之後,写一个while
去等待,当done变成true时才能离开no op的while loop继续往下做,
结果发现每次输入完之後,while都不会停...但若是把while拿掉,还没等到参数输入完成
它就往下做了。
我在想会不会是java把while那段执行放到另一个cpu上做了,所以当里面判断式的布林
值改变了,但是他没有即刻更新....请问这个问题该怎解呢?
以下是有问题的程式码:
//座标初始设成无效的数值,用来辨认参数是否有在GUI介面被写入
Coordinate tip=new Coordinate(-50,-50);
Coordinate root=new Coordinate(-50,-50);
ManualInputPanel manual=new ManualInputPanel(fileName,tip,root);
manual.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
manual.setSize(800,200);
manual.setVisible(true);
//等待参数输入完成(这个部分试过用isvisible()或是isshowing()结果都一样
while(!manual.isDone())
{
;
}
manual.setVisible(false);
double dis=Coordinate.distance(tip, root);
//做尺寸正规化
Scaling scale=new Scaling(new ScaleNormalize(dis).getScale(),spareImg);
gray=scale.getImg();
writebmp.SaveGray(output+"8-大小正规化-"+FileName,gray);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 175.181.120.39
※ 编辑: Makoto0813 来自: 175.181.120.39 (12/05 09:19)
1F:推 LaPass:通常视窗类的程式会有自己的执行绪。 12/05 09:25
2F:→ LaPass:还有,卡住执行绪尽量不要用回圈,用block之类的东西比较好 12/05 09:31
意思是说要做同步处里thread的意思吗? 是要继承runnable去做的意思吗?
3F:推 swpoker:你要实作listener才是~好奇问一句~你是一个JAVA写到底吗 12/05 09:45
4F:→ Makoto0813:1个java写到底? 不太确定你的意思,我没有内嵌其他语言 12/05 09:52
5F:→ Makoto0813:请问关於listener可以说详细一点吗,不知可用哪一种 12/05 11:18
※ 编辑: Makoto0813 来自: 175.181.120.39 (12/05 11:21)