【发布时间】:2015-05-26 02:19:26
【问题描述】:
所以我正在使用 Java Swing 编写一个应用程序,我想知道如何制作它,以便在调整整个应用程序的大小时只有某些面板以各种方式调整大小。看看下面两张图:
如您所见,我有三个垂直面板。现在,当应用程序的高度扩展时,所有三个面板的高度也应该增加,这很好。但是,当宽度增加时,我希望它只增加中间面板(将是“工作区”)的宽度。相反,如您所见,右侧最后添加的第三个面板是唯一宽度增加的面板。
当整个窗口在 x 轴上调整大小时,我如何才能使只有中间的 JPanel 拉伸和收缩?另外,稍后我想让这个工作区面板不总是在中间;因为用户可以移动其他两个面板以根据自己的喜好自定义应用程序,例如使其他两个面板在左侧堆叠在一起,而工作区在右侧。但是,无论它在哪里,我都希望工作区面板成为调整大小的面板,我该怎么做?
【问题讨论】:
-
我打赌你可以使用
WindowListener并且我认为windowResized()方法,选择你的middle panel并相应地调整它的大小。我不确定你是否可以获得旧的宽度(存储它?)或者你可以做middlepanel.setWidth(window.getWidth() - leftpanel.getWidth() - rightpanel.getWidth()); -
承认您使用 Netbeans GUI Builder 可能会让您了解这些部分,但如果您实际使用它,我制作了一个方便的 YouTube 视频来展示我所学到的:@987654324 @.
-
补充一点:自从制作该视频以来,Netbeans 对 GUI Builder 进行了大量改进,让手动编码的布局管理器真正物有所值。所以现在比以前更好了。
标签: java swing jpanel layout-manager jsplitpane