我的问题是虽然滚动条出现在特定面板上,但我希望它不会随着标签的添加而延伸。当标签开始离开面板时,我希望它能够扩展。
我有一个主要的JPanel'面板'使用GridBagLayout,其中我有5个其他面板,需要滚动条的是boardPanel,它具有setLayout()的空值
panel = new JPanel();
panel.setLayout(new GridBagLayout());
...
1Panel = new JPanel();
1Panel.setPreferredSize(new Dimension(480, 800));
1Panel.setLayout(null);
scrollPanel = new JScrollPanel(1Panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
...
c.weighty = 1.0;
c.weightx = 0.6;
c.gridx = 0;
c.gridy = 0;
c.gridheight = 3;
panel.add(scrollPanel, c);
...
我希望这是足够的信息,非常感谢你的帮助。
答案 0 :(得分:3)
不要使用空布局!!!
不要使用setPreferredSize()!!!
当组件的首选大小大于滚动窗格的大小时,将显示滚动条。通过硬编码大小,您可以破坏此功能。
使用布局管理器,在向面板添加组件时,首选大小将动态更改。
上的Swing教程