swing的一些问题

f504501983 2012-02-22 01:48:23
1.我在button单机事件中说指明了jButton1.setEnabled(false);
jButton1.setText("已单机");
然后进行了查询操作;可是不知道为什么总是查询接收后这两个设置才起效,并不是在查询之前起效
2.在我进行查询的时候(时间较长),我点击关闭按钮不能关闭程序,并且也不能切换选项卡。查询结束后才可关闭程序或切换选项卡。
本人新手,在线等大侠
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
果断结贴
f504501983 2012-02-28
  • 打赏
  • 举报
回复
用swingworker类怎么实现啊。我想在点击查询后进行数据库查询操作。期间如果要退出程序也可以退出(现在不行)。请说详细点,或者给出伪代码。。。 谢谢
f504501983 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 still_rain 的回复:]

引用楼主 f504501983 的回复:
1.我在button单机事件中说指明了jButton1.setEnabled(false);
jButton1.setText("已单机");
然后进行了查询操作;可是不知道为什么总是查询接收后这两个设置才起效,并不是在查询之前起效
2.在我进行查询的时候(时间较长),我点击关闭按钮不能关闭程序,并且也不能切换选项卡。查询结束后才可关闭程序或切换……
[/Quote]
现在主要解决第二个问题吧。比如我点了查询,这项操作很费时,我想结束,此时我点关闭按钮或切换选项卡是无效的。请问该怎么办
爱摸鱼de老邪 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 f504501983 的回复:]

引用 3 楼 still_rain 的回复:

引用楼主 f504501983 的回复:
1.我在button单机事件中说指明了jButton1.setEnabled(false);
jButton1.setText("已单机");
然后进行了查询操作;可是不知道为什么总是查询接收后这两个设置才起效,并不是在查询之前起效
2.在我进行查询的时候(时间较长),我点击关闭按钮不能关闭程序……
[/Quote]
因为你在界面线程里进行后台的长时间的业务操作,导致界面“假死”现象,原因就是我在3楼讲的,你想解决,那就不要在界面的模块中放入后台逻辑业务操作代码。你或者可以自己去创建新线程去进行业务操作,或者用JDK提供的SwingWorker类。
爱摸鱼de老邪 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 f504501983 的回复:]
1.我在button单机事件中说指明了jButton1.setEnabled(false);
jButton1.setText("已单机");
然后进行了查询操作;可是不知道为什么总是查询接收后这两个设置才起效,并不是在查询之前起效
2.在我进行查询的时候(时间较长),我点击关闭按钮不能关闭程序,并且也不能切换选项卡。查询结束后才可关闭程序或切换选项卡。
本人新手,在线等大侠
[/Quote]
你肯定在界面的模块中进行后台业务逻辑操作了,这在Swing中试要避免的,因为Swing基于单线程模型的,应该新建一个线程去进行后台逻辑业务。你好好看看JDK中SwingUtilities和SwingWorker这两个类,或者在网上搜搜Swing的资料就明白了。
  • 打赏
  • 举报
回复
1、刷新一下界面
2、按1楼用线程
旷逍遥 2012-02-22
  • 打赏
  • 举报
回复
那就用线程吧

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧