(以下内容都基于J2SE  1.5)  
我现在有一个普通矩形窗口,我希望能让此窗口只能在一个我设定好的矩形区域内移动。  
 
1.窗口的每条边都不能超出矩形区域的边  
2.在双击该窗口最大化时,该窗口的最大化面积只能是该矩形区域的大小  
3.实现该窗口的透明化(就是说只能看见窗口的边框和顶部的窗口栏,中间部分是矩形区域的内容)  
 
请各位大侠帮忙啊,小弟不胜感激!!

解决方案 »

  1.   

    var x0=0,y0=0,x1=0,y1=0;
    var offx=6,offy=6;
    var moveable=false;
    var hover='orange',normal='slategray';//color;
    var index=10000;//z-index;
    //开始拖动;
    function startDrag(obj)
    {
            if(event.button==1)
            {
                    //锁定标题栏;
                    obj.setCapture();
                    //定义对象;
                    var win = obj.parentNode;
                    var sha = win.nextSibling;
                    //记录鼠标和层位置;
                    x0 = event.clientX;
                    y0 = event.clientY;
                    x1 = parseInt(win.style.left);
                    y1 = parseInt(win.style.top);
                    //记录颜色;
                    normal = obj.style.backgroundColor;
                    //改变风格;
                    obj.style.backgroundColor = hover;
                    win.style.borderColor = hover;
                    obj.nextSibling.style.color = hover;
                    sha.style.left = x1 + offx;
                    sha.style.top  = y1 + offy;
                    moveable = true;
            }
    }
    //拖动;
    function drag(obj)
    {
            if(moveable)
            {
                    var win = obj.parentNode;
                    var sha = win.nextSibling;
                    win.style.left = x1 + event.clientX - x0;
                    win.style.top  = y1 + event.clientY - y0;
                    sha.style.left = parseInt(win.style.left) + offx;
                    sha.style.top  = parseInt(win.style.top) + offy;
            }
    }
    //停止拖动;
    function stopDrag(obj)
    {
            if(moveable)
            {
                    var win = obj.parentNode;
                    var sha = win.nextSibling;
                    var msg = obj.nextSibling;
                    win.style.borderColor     = normal;
                    obj.style.backgroundColor = normal;
                    msg.style.color           = normal;
                    sha.style.left = obj.parentNode.style.left;
                    sha.style.top  = obj.parentNode.style.top;
                    obj.releaseCapture();
                    moveable = false;
            }
    }//最小化;
    function min(obj)
    {
            var win = obj.parentNode.parentNode;
            var sha = win.nextSibling;
            var tit = obj.parentNode;
            var msg = tit.nextSibling;
            var flg = msg.style.display=="none";
            if(flg)
            {
                    win.style.height  = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
                    sha.style.height  = win.style.height;
                    msg.style.display = "block";
                    obj.innerHTML = "0";
            }
            else
            {
                    win.style.height  = parseInt(tit.style.height) + 2*2;
                    sha.style.height  = win.style.height;
                    obj.innerHTML = "2";
                    msg.style.display = "none";
            }
    }
    //创建一个对象;
    function xWin(id,w,h,l,t,tit,msg)
    {
            index = index+2;
            this.id      = id;
            this.width   = w;
            this.height  = h;
            this.left    = l;
            this.top     = t;
            this.zIndex  = index;
            this.title   = tit;
            this.message = msg;
            this.obj     = null;
            this.bulid   = bulid;
            this.bulid();
    }
    <div id=xMsg" id="" width="" height="" left="" top+"" ></div> function initialize()
    {
            var a = new xWin("1",160,200,200,200,"Message","xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13");
     }
      

  2.   

    这个好象是javascrip啊能不能直接利用j2se中的东西来做呢??