我正在开发一款名为GalaxyWar的游戏,我正在尝试制作地图选择菜单。我发现一个问题,当我在带有BoxLayout.Y_AXIS
的JPanel上使用带有setAlignmentX(CENTER_ALIGNMENT)
的BoxLayout时,具有指定大小的子组件(JPanel' s)占据了面板的整个高度(全部一起),而不是指定的高度!
这是我的代码:
scrollPane = new JScrollPane();
scrollPane.setBounds(160, 11, 452, 307);
add(scrollPane);
mapContainer = new JPanel();
mapContainer.setAlignmentX(CENTER_ALIGNMENT);
mapContainer.setAlignmentY(JPanel.TOP_ALIGNMENT);
mapContainer.setLayout(new BoxLayout(mapContainer, BoxLayout.Y_AXIS));
scrollPane.setViewportView(mapContainer);
JPanel demoPanel = new JPanel();
demoPanel.setLayout(null);
demoPanel.setBackground(Color.YELLOW);
demoPanel.setSize(50, 100);
mapContainer.add(demoPanel);
我已经对此进行了长时间的研究,但到目前为止还没有找到任何解决方案。
答案 0 :(得分:0)
尝试检查
setPreferredSize()
setMaximumSize()
setMinimumSize()
将所有3设置为相同的值。
如果它仍然无法正常工作,您可以尝试将您尝试将其大小设置为固定的面板放在另一个面板中。