在开始之前,我知道不使用布局管理器是一个坏主意,通常我确实使用布局管理器,但是,我还让所有组件根据窗口的大小自动重新调整大小和重新定位。此外,我正在开发的程序在其整个生命周期中仅打算在一台机器上运行。请不要仅仅因为缺少布局管理器而对我投反对票,我发现它正是我这个特定程序所需要的。
对于我的问题,我在 stackoverflow 上找到了类似的帖子,但从未找到解决方案。
我正在添加动态数量JLabels
to my JPanel
,我注意到,当不使用布局管理器时,滚动器不起作用。
这是我的初始化代码的简化版本。
JPanel mypanel = new JPanel();
mypanel.setLayout(null);
mypanel.setSize(800,450);
mypanel.setForeground(Color.WHITE);
mypanel.setBackground(Color.BLACK);
scrollablePanel = new JScrollPane(mypanel);
scrollablePanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollablePanel.setPreferredSize(new Dimension(800,300));
scrollablePanel.setSize(800,300);
scrollablePanel.setLocation(250,156);
myContainer.add(scrollablePanel);
where myContainer
将是容器(也没有布局管理器)。这JLabels
稍后添加到JPanel
with:
enter code here
mypanel.add(label1);
为标签设置一些基本设置后,例如setForeground
and setBackground
.
不幸的是,运行时,滚动条看起来好像不需要(见图)
https://i.stack.imgur.com/OEl5O.png https://i.stack.imgur.com/OEl5O.png
图中看到的表格文本由多个组成JLabels
。
如果不使用布局管理器无法解决问题,我将切换到 BoxLayout,我只是希望能有一个解决方案。