我正在维护一个系统,它要求我在对话框中调整组件的大小,对话框调出一个java类Panel。
注意:底层的图像代表调整大小的图像。虽然顶层的图像是尚未调整大小的对话框。
如您所见,组件JPanel(具有黑色边框的组件)未调整大小。我正在尝试实现第一个附件的底层图像所发生的事情。
我尝试在How to dynamically control auto-resize components in Java Swing中应用答案并在当前代码中对其进行设置,但由于我的面板仅在对话框中调用,因此存在限制。问题是组件及其层次结构已经实现,我只需要自动调整大小。
这是我目前的大纲:
答案 0 :(得分:0)
如果您想要一个简单的解决方案,可以使用here所述的布局管理器。 或者,如果您希望避免布局管理器(像我一样),那么每次调整大小事件时,您都可以让程序调整元素大小。 这是一些sudo-code
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只是一个比例,您可以根据您的应用更改它们。