CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

程序中有一按钮,点击执行一存储过程,但此存储过程执行时间较长(10分钟左右),如何利用线程,使得在执行过程中可进行另外的操作?谢谢

楼主Leony(老树)2003-06-02 00:56:49 在 Java / J2SE / 基础类 提问

程序中有一按钮,点击执行一存储过程,但此存储过程执行时间较长(10分钟左右),如何利用线程,使得在执行过程中可进行另外的操作,而不至于程序界面没有反应,请高手提示一下,或给个代码就最好了,谢谢!!!! 问题点数:50、回复次数:12Top

1 楼mercury1231(为论文而拼搏,老板就是上帝)回复于 2003-06-02 01:15:40 得分 10

再答一次。  
   
  用一个内部成员类继承Thread或者implements   Runnable接口,然后在按下这个按钮时,用这个内部成员类(线程)来处理操作。  
  这样的话就不会发生程序没有反应的情况。Top

2 楼RomandAccessFile(goodghost)回复于 2003-06-02 04:08:19 得分 25

public   ButtonPress()  
  {  
  JButton   jb=new   JButton();  
   
  jb.addActionListener(new   ActionListener()  
  {  
  public   void   actionPerformed(ActionEvent   evt)  
  {  
  Thread   t=new   Thread(new   Runnable()  
  {  
  public   void   run();  
  {  
  Query()\\方法  
  }  
  });  
  t.start();  
  }  
  });  
  }  
  给你一个大概,是构造函数,只要看一下,就会了,,  
  在方法的那个地方加进你的方法,替成你的那个方法就行了,  
  太累了,我要睡了,记得给分!!!         :)  
  Top

3 楼Leony(老树)回复于 2003-06-02 10:34:01 得分 0

谢谢两位!问题已经解决,只是有点不明的地方想问一下:  
  To   RomandAccessFile(goodghost)   :  
  new   Runnable()  
  {  
        public   void   run();  
        {  
  Query()\\方法  
        }  
  }  
  这段代码是什么意思啊,我知道Theard类有一构造涵数:Thread(Runnable   target)    
  以上代码是建立一接口吗?能这样做吗?接口不是不能被new或者继承吗?  
   
  To   mercury1231(非典时期的爱情):  
  你是意思是指把要执行的存储过程程序写在你所说的那个内部类run()里面对吗?  
  然后在按下按钮的时候new   一个内部类a,然后a.start()吗?  
   
   
  Top

4 楼Leony(老树)回复于 2003-06-02 11:11:55 得分 0

如果想在线程执行存储过程的过程中,弹出一个进度条,要应该如何做呢?  
  Top

5 楼Leony(老树)回复于 2003-06-02 13:06:09 得分 0

upTop

6 楼hoxisoft(一切全为你)回复于 2003-06-02 13:34:22 得分 0

记得有个专门的方法,就是进度条,你查查看Top

7 楼zouwork(了解)回复于 2003-06-02 19:09:55 得分 0

这段代码是什么意思啊,我知道Theard类有一构造涵数:Thread(Runnable   target)    
  以上代码是建立一接口吗?能这样做吗?接口不是不能被new或者继承吗?  
   
   
  当然是要你自己写那个Runnable的~~  
  Top

8 楼teaky2002(种田硬手)回复于 2003-06-02 19:56:07 得分 0

匿名类。内部类的一种。查资料就知道了。Top

9 楼mymoto(忽忽)回复于 2003-06-02 20:13:55 得分 0

看看java自己带的demo/jfc/Notepad/Notepad.jar,里面和你要求的一样,记住以后多看demo,高手的代码都是经典啊Top

10 楼RomandAccessFile(goodghost)回复于 2003-06-02 22:12:58 得分 0

我顶,,今天我来看一下,还没给分呀,,  
  本来接口就是缺少方法的类,,(这样理解应该对吧!   不要向我扔西红柿,,!!!!)  
  所以只要把这样的方法进行定议,就可以当作一个类来使用,,Top

11 楼shine333(enihs)回复于 2003-06-03 00:10:13 得分 15

关于  
  Thread   t=new   Thread(new   Runnable(){....});  
  的问题  
  new   XXX(){  
        .....  
  };  
  这是一个匿名内部类,XXX可以是class或interface,表明这个内部类extends/implements   XXX,而且   XXX后面不能跟任何implements语句。而且,这个内部类绝对不能是abstract的,换句话说,XXX中所有未定义的方法都应定义完整。  
  此外,这个内部类可以使用到其外面的变量,包括成员变量和局部变量(后者一定要final)  
  例如  
  abstract   class   A(){  
        abstract   void   a();  
  }  
  class   B{  
        int   x;  
        void   doSth(final   int   y,   int   z){  
            A   innerA   =   new   A(){  
                public   void   a(){  
                        x=y;   //right;  
                        x=z;   //wrong;  
                }  
            }  
        }  
        void   doNothing(){  
                A   aa   =   new   A(){  
                      public   void   a(){}  
                }  
        }  
  }  
   
  同时这些内部类都有自己的名字,比如上面的对应于B$1,B$2,   文件B$1.class,   B$2.class  
  数字按在源文件中出现的顺序  
  如果它没有用到局部变量的话,例如可以直接在其他地方调用  
  class   C{  
        A   a   =   new   B$2();  
  }Top

12 楼Leony(老树)回复于 2003-06-03 09:57:00 得分 0

谢谢大家,请再到这里签到,我会把另外50分给大家:  
  http://expert.csdn.net/Expert/topic/1863/1863554.xml?temp=.4903681  
   
  请再讲一下在窗口中打开一新窗口,它们之间如何传递参数,最好有例子,谢谢,再加50分  
   
   
   
  Top

相关问题

  • 如何执行sqlserver的存储过程?
  • 存储过程的执行问题?
  • odbc.net怎么执行存储过程?
  • 如何批执行存储过程???
  • 执行存储过程出错 :(
  • 用ADO如何执行存储过程
  • (ADO)--执行存储过程的错误
  • 为何不能执行存储过程?
  • 执行ORACLE存储过程的问题
  • 存储过程怎么执行?

关键词

  • 执行
  • 存储过程
  • 线程
  • 代码
  • 接口
  • 谢谢
  • 按钮
  • 程序
  • 内部类
  • runnable

得分解答快速导航

  • 帖主:Leony
  • mercury1231
  • RomandAccessFile
  • shine333

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo