关于java的swing线程和问题

publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(e.getSource(... public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
if(e.getSource()==jb1){
dialog.setvisible(true);
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("ok");
}
这我本想在一点就显示出dialog但是最终一定要等5秒才能显示,
怎么让他先显示出来啊? 不要让我把这东西写在外面这样的...
展开
 我来答
素蓝
2011-11-28 · TA获得超过560个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:326万
展开全部
你可以做一个变量判断这个变量的值来控制TimeUnit.SECONDS.sleep(5);这句代码,然后根据你的情况来在判断里改变这个变量的值。
追问
这只是个模拟,如果把这个线程休息时间改成 连接数据库呢?
追答
一样阿。连接数据库然后查询出数据 做完处理,然后关闭对话框dialog,代码顺序没问题就ok。只是也许会遇到一个线程内不能控制ui线程的动作,不过你可以用runOnUiThread
xuexiao45
2011-11-29 · TA获得超过2343个赞
知道小有建树答主
回答量:794
采纳率:0%
帮助的人:164万
展开全部
虽然你设置了dialog可见 但是线程sleep了~所以还没绘制 因为不知道你具体的需求 所以没有改进的建议
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式