我现在用mouseExit()方法,问题是当鼠标进入shell内的label中时也会触发这个方法。
怎么识别mouseExit()被触发时是否进入了shell的子控件呢?还有,我希望鼠标离开shell时,shell不会马上收起,而是等待鼠标在shell外停留一秒没有进入再收起
请问应该怎样实现?
swt新手,谢谢

解决方案 »

  1.   

    第一个问题解决了,虽然隐隐觉得方式不怎么好,但测试效果还可以...不知道还有没有更好的方式?
    while (!shell.isDisposed()) {

    if (!display.readAndDispatch()){

    if(display.getCursorControl()==null)
    shell.setBounds(rect1);
    else
    shell.setBounds(rect2);


    display.sleep();
    }
    }
    第二个问题感觉应该不难,就是自己对gui中的thread没什么理解所以想不出
      

  2.   

    隐藏? 是用MoveWindows等方式完成的,你要到网上找 磁性Docking等关键字。
      

  3.   

    moveWindow方法在哪里?我搜了swt api doc,没有找到:(
    google磁性docking也没有有用结果,能否再给点信息捏?
      

  4.   

    也许需要添加 定时的功能
    我也是新手,而且不是很理解你的问题.
    定时功能可以用Tread.sleep(int i)实现
    有个列子:this是一个JFrame, 显示一秒边隐藏
    this.setVisible(true);
            
    try
      {
        Thread.sleep(i);////i 的单位 millisecond 就是1000是一秒
      } 
    catch (InterruptedException e)
      {
        e.printStackTrace();
      }this.setVisible(false);