如何在运行时更改面板的高度?
我在JFrame
内有一些面板,我试过其中一个:
int w = panel.getWidth();
panel.setSize(w, 1000);
但是没有效果。怎么了?
答案 0 :(得分:1)
您可能需要validate并重新绘制您的面板。请尝试以下方法:
int x=panel.getWidth();
panel.setSize(x,1000);
panel.validate();
panel.repaint();
答案 1 :(得分:1)
看看这个答案:
“在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! :)