Java Swing Eclipse - JPanel 和组件自动调整大小
Jave Swing Eclipse - JPanel and components auto resize
我正在维护一个系统,该系统要求我使对话框中的组件可调整大小,对话框调出一个 java class 面板。
应该发生什么:
目前发生的事情:
注:下层图片为调整后的图片。而顶层的图像是尚未调整大小的对话框。
如您所见,JPanel 组件(黑色边框的那个)没有调整大小。我正在尝试实现第一个附件的底层图像发生的情况。
我尝试应用 中的答案并在当前代码中对其进行模式化,但由于我的面板仅在对话框中调用,因此存在局限性。问题是组件和它的层次结构已经实现了,我只需要让它自动调整大小。
这是我目前的大纲:
如果您想要一个简单的解决方案,您可以使用 here 中描述的布局管理器。
或者,如果您希望避免使用布局管理器(像我一样),那么您可以让程序在每次发生调整大小事件时调整元素的大小。
这是一些 sudo 代码
frameOrPanel.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent componentEvent) {
element.setLocation(frameOrPanel.getWidth()*1/4, frameOrPanel.getHeight*1/4);
element.setSize(frameOrPanel.getWidth()*1/2, frameOrPanel.getHeight()*1/2);
}
});
您必须添加未实现的方法。
注意:1/4 和 1/2 只是一个比例,您可以更改它们以适合您的应用。
我正在维护一个系统,该系统要求我使对话框中的组件可调整大小,对话框调出一个 java class 面板。
应该发生什么:
目前发生的事情:
注:下层图片为调整后的图片。而顶层的图像是尚未调整大小的对话框。
如您所见,JPanel 组件(黑色边框的那个)没有调整大小。我正在尝试实现第一个附件的底层图像发生的情况。
我尝试应用
这是我目前的大纲:
如果您想要一个简单的解决方案,您可以使用 here 中描述的布局管理器。 或者,如果您希望避免使用布局管理器(像我一样),那么您可以让程序在每次发生调整大小事件时调整元素的大小。 这是一些 sudo 代码
frameOrPanel.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent componentEvent) {
element.setLocation(frameOrPanel.getWidth()*1/4, frameOrPanel.getHeight*1/4);
element.setSize(frameOrPanel.getWidth()*1/2, frameOrPanel.getHeight()*1/2);
}
});
您必须添加未实现的方法。
注意:1/4 和 1/2 只是一个比例,您可以更改它们以适合您的应用。