在运行时更改面板的高度

时间:2011-04-20 12:44:21

标签: java swing layout

如何在运行时更改面板的高度?

我在JFrame内有一些面板,我试过其中一个:

int w = panel.getWidth();
panel.setSize(w, 1000);

但是没有效果。怎么了?

5 个答案:

答案 0 :(得分:1)

您可能需要validate并重新绘制您的面板。请尝试以下方法:

int x=panel.getWidth();
panel.setSize(x,1000);
panel.validate();
panel.repaint();

答案 1 :(得分:1)

看看这个答案:

set size wont work in java

“在Swing中,您有两种布局选项:手动完成所有操作或让LayoutManager为您处理。”

“尝试调用setPreferredSize()和setMinimumSize()。”

如果您正在使用布局管理器(您可能是),布局决定如何处理 包含的组件。 setPreferredSize()通常有效,因为布局通常要求 包含组件的首选大小,然后排列组件 基于(其中)该信息。

答案 2 :(得分:0)

如果将面板放在LayoutManager中(即父节点的LayoutManager默认为BorderLayout),则LayoutManager会覆盖大小,因此您的调用无效。

尽管我建议使用LayoutManager并使用setLayoutManager(null)setPreferredSize()setMinimumSize(),但请尝试在父级上调用setMaximumSize()

答案 3 :(得分:0)

要更改JPanel的宽度和高度,请使用 setPreferredSize 方法。

JPanel folderPanel = new JPanel();      
folderPanel.setPreferredSize(new Dimension(245, 450));// width, height

答案 4 :(得分:0)

您只需设置此组件(JPanel)的可见性,如下所示:

JPanel panel = new JPanel();
//set your custom size in this with=120; height=570;
panel.setSize(120,570);
panel.setVisible(false);
panel.setVisible(true);
//hope this help! :)