Jave Swing Eclipse - JPanel和组件自动调整大小

时间:2018-05-02 04:33:06

标签: java eclipse swing resize

我正在维护一个系统,它要求我在对话框中调整组件的大小,对话框调出一个java类Panel。

应该发生什么: enter image description here

目前正在发生什么: enter image description here

注意:底层的图像代表调整大小的图像。虽然顶层的图像是尚未调整大小的对话框。

如您所见,组件JPanel(具有黑色边框的组件)未调整大小。我正在尝试实现第一个附件的底层图像所发生的事情。

我尝试在How to dynamically control auto-resize components in Java Swing中应用答案并在当前代码中对其进行设置,但由于我的面板仅在对话框中调用,因此存在限制。问题是组件及其层次结构已经实现,我只需要自动调整大小。

这是我目前的大纲:

enter image description here

1 个答案:

答案 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只是一个比例,您可以根据您的应用更改它们。