当前位置:  技术问答>java相关

如何在FRAME(包含JTREE、JBUTTON等)处于等待状态时屏蔽各组件的鼠标单击事件?(检索不到相应答案)

    来源: 互联网  发布时间:2015-09-17

    本文导语:  请赐教! | 有两种办法,一种比较简单的就是跳出一个模态对话框,显示请等待。 另一种就是自己接获事件,有一些代码你参考一下吧: if (SwingUtilities.isEventDispatchThread()) {         EventQ...

请赐教!

|
有两种办法,一种比较简单的就是跳出一个模态对话框,显示请等待。
另一种就是自己接获事件,有一些代码你参考一下吧:
if (SwingUtilities.isEventDispatchThread()) {
        EventQueue theQueue =
          getToolkit().getSystemEventQueue();
        while (isVisible()) {
          /*AWTEvent event = theQueue.getNextEvent();
          Object source = event.getSource();
          if (event instanceof ActiveEvent) {
            ((ActiveEvent)event).dispatch();
          } else if (source instanceof Component) {
            break;
          } else if (source instanceof MenuComponent) {
            ((MenuComponent)source).dispatchEvent(
              event);
*/在这里处理相关事件,是否让其分发
          } else {
            System.err.println(
              "Unable to dispatch: " + event);
          }
        }
      } else {
        while (isVisible()) {
          wait();
        }

|
上面的代码就是处理模态的,你可以参照这个代码写一个函数,当要进入等待状态时就调用这个函数,截获事件处理线程,任何鼠标事件都return,不让它继续向下分发,具体我也没做过,好像VC里有接获事件的,但是Java里讲的好像没见过,这是模态对话框里类似的代码;其实加一个等待对话框时比较常用的,否则用户会认为死机了。就像微软的界面标准好像是等待几秒就谈对话框,时间再长就放进度表。
还有一个比较笨的但是容易实现的办法,就是设一个全局标志,当要进入等待状态时把它设为true,然后再每个要处理的鼠标事件中判断这个标志,如果为真才能做处理。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何控制Frame中的组件大小,当用鼠标拖动改变frame大小时
  • 在java的GUI的应用程序中能否实现对容器(如Frame)中的所有组件遍历?
  • java命名空间java.awt类frame的类成员方法: frame定义及介绍
  • 简单问题:从Frame1调用Frame2,怎么让Frame2中的Button1不可用?
  • java命名空间java.awt类frame.accessibleawtframe的类成员方法: frame.accessibleawtframe定义及介绍
  • Frame frame = new Frame();为什么在linux中通不过?
  • java命名空间javax.swing类jrootpane的类成员方法: frame定义及介绍
  • 最近频频发生 段错误,gdb最后显示Previous frame inner to this frame (corrupt stack?)的问题. iis7站长之家
  • java命名空间javax.swing.plaf.basic类basicinternalframeui的类成员方法: frame定义及介绍
  • 如何把一个字符串从一个frame传到另一个frame?
  • java命名空间javax.swing.plaf.basic类basicdesktopiconui的类成员方法: frame定义及介绍
  • 菜鸟问题-如何从一个frame调用另一个frame?
  • java命名空间javax.swing.plaf.basic类basicinternalframetitlepane的类成员方法: frame定义及介绍
  • 请问AWT中Frame可以嵌套吗?Dialog呢?Frame和Dialog呢?
  • java命名空间javax.accessibility类accessiblerole的类成员方法: frame定义及介绍
  • 请问怎样在两个Frame之间通信
  • java命名空间javax.swing.text.html类html.tag的类成员方法: frame定义及介绍
  • 最近频频发生 段错误,gdb最后显示Previous frame inner to this frame (corrupt stack?)的问题.
  • java命名空间javax.accessibility类accessiblerole的类成员方法: internal_frame定义及介绍
  • frame如何显示List? 50送上!
  • java命名空间java.awt类frame的类成员方法: getstate定义及介绍
  • Jbuilder5中关于Frame、Dialog大小的问题。
  • java命名空间javax.swing类jlayeredpane的类成员方法: frame_content_layer定义及介绍
  • 改变frame系统菜单的图标???(解决就给分)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3