resize()后判断width和height然后根据条件再重设width和height并resize

解决方案 »

  1.   

    resize(),是不是要repaint()呢?
      

  2.   

    自己加时间来监听变化。控制大小。
    继承JDialog,实现如下方法或inner class。
    一,
            this.addMouseListener(new FrameResize_this_mouseAdapter(this));
    this是指JDialog对象。
    二,
        void this_mouseExited(MouseEvent e)
        {
            System.out.println( e );
            if (e.getX()<oldWidth)
                newX = oldWidth;
            if (e.getY()<oldHeight)
                newY = oldHeight;
            this.setSize(new Dimension(newX, newY));
        }
    第二段放在JDialog的子对象里。newX,newY表示JDialog的新窗体大小。oldWidth,oldHeight原始大小。
    三,
    class FrameResize_this_mouseAdapter extends java.awt.event.MouseAdapter
    {
        FrameResize adaptee;    FrameResize_this_mouseAdapter(FrameResize adaptee)
        {
            this.adaptee = adaptee;
        }
        public void mouseExited(MouseEvent e)
        {
            adaptee.this_mouseExited(e);
        }
    }