Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调整JFrame java的西侧大小_Java_Swing_Resize_Jframe - Fatal编程技术网

调整JFrame java的西侧大小

调整JFrame java的西侧大小,java,swing,resize,jframe,Java,Swing,Resize,Jframe,我目前正在尝试使用鼠标侦听器,通过未装饰的JFrame来调整窗口的大小。下面是一个调整JFrame东侧大小的实现示例 sizeX和sizeY是从程序的初始化部分获取的帧的当前大小bg是“我的内容”窗格中的唯一元素。我使用了frame.pack() public void mouseMoved(MouseEvent e){ if((sizeX-2)e.getX()){ resizeXE(e); } 打印信息(“拖动”,e); } void changeCursor(光标光标、布尔值调整大小){ 如

我目前正在尝试使用鼠标侦听器,通过未装饰的
JFrame
来调整窗口的大小。下面是一个调整JFrame东侧大小的实现示例

sizeX
sizeY
是从程序的初始化部分获取的帧的当前大小<代码>bg是“我的内容”窗格中的唯一元素。我使用了
frame.pack()

public void mouseMoved(MouseEvent e){
if((sizeX-2)e.getX()){
resizeXE(e);
}
打印信息(“拖动”,e);
}
void changeCursor(光标光标、布尔值调整大小){
如果(调整大小){
resizeFlag=true;
}否则{
resizeFlag=false;
}
bg.setCursor(游标);
}
void resizeXE(MouseEvent e){
如果(resizeFlag){
sizeX=e.getX();
((JFrame)SwingUtilities.getAncestorOfClass(JFrame.class,bg)).setSize(
(sizeX,sizeY),;
}
}
我需要帮助来实施西区的规模调整。我相信如果我弄明白了这一点,我可能就不需要南北双方的帮助了

如您所见,我正在尝试使用
setSize()
方法调整大小。然而,我不知道如何在西区使用它。有其他选择的建议吗

如您所见,我正在尝试使用setSize()方法调整大小

在西面调整大小时,需要使用:

  • setLocation(…)-因为帧的边缘移动到新位置
  • 设置大小(…)-因为大小也会增加

  • 有道理。我实际上是在避免这样做,但我现在要试试。我已经完成了它的实现,但它太。。提奇。与西方相比,东方的调整要顺利得多。这显然是由设置位置引起的。是否可以使其大小更清晰?@user2280704,请参阅以了解我的实现。它将比您的更复杂,因为它支持捕捉等其他功能,但如果您仔细查看代码,它可能会给您一些想法。
        public void mouseMoved(MouseEvent e){
            if((sizeX - 2) <= e.getX()){
                changeCursor(new Cursor(Cursor.E_RESIZE_CURSOR), true);
            }else{
                changeCursor(new Cursor(Cursor.DEFAULT_CURSOR), false);
            }
    
            printInfo("Moved", e);
        }
        public void mouseDragged(MouseEvent e){
            if(sizeX < e.getX() ||
                    sizeX > e.getX()){
                resizeXE(e);
            }
            printInfo("Dragged", e);
        }
        void changeCursor(Cursor cursor, boolean resize){
            if(resize){
                resizeFlag = true;
            }else{
                resizeFlag = false;
            }
            bg.setCursor(cursor);
        }
        void resizeXE(MouseEvent e){
            if(resizeFlag){
                sizeX = e.getX();
                ((JFrame) SwingUtilities.getAncestorOfClass(JFrame.class, bg)).setSize(
                        sizeX, sizeY);
            }
        }