我目前正在尝试使用MouseListeners实现使用未修饰的JFrame
调整窗口的大小。这是我实现调整JFrame东侧的一个示例。
sizeX
和sizeY
是从程序的初始化部分获取的帧的当前大小。 bg
是我的内容窗格中唯一的元素。我使用了frame.pack()
。
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);
}
}
我需要帮助尝试实施西侧的大小调整。我相信如果我弄清楚这一点,我可能不需要南北两侧的帮助。
正如您所看到的,我正在尝试使用setSize()
方法调整大小。但是我不知道如何在西侧使用它。有关替代品的任何建议吗?
答案 0 :(得分:3)
正如您所看到的,我正在尝试使用setSize()方法调整大小。
当您在西部调整大小时,您需要使用: