当前位置: 首页 > 知识库问答 >
问题:

如何使用BoxLayout使组件与JPanel中的TOP对齐?

喻渊
2023-03-14

我正在开发一款名为Galaxywar的游戏,我正在尝试制作一个地图选择菜单。我发现了一个问题,当我使用带有BoxLayout的BoxLayout时。Y_AXIS在带有setAllimentX(CENTER_ALIGNMENT)的JGroup上,具有指定大小的子组件(JGroup)占据了面板的整个高度(全部一起),而不是指定的高度!

以下是我的代码:

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);

我对此进行了长时间的研究,但到目前为止找不到任何解决方案。

共有1个答案

柏阳炎
2023-03-14

试着退房

setPreferredSize() 
setMaximumSize()
setMinimumSize()

将所有3个设置为相同的值。

如果它仍然不起作用,您可以尝试将面板(您尝试将其大小设置为固定)放在另一个面板中。

 类似资料:
  • 我有一个带有BoxLayout Y轴的JPanel,并希望在此面板中添加多个JLabel。标签应该适合面板的宽度,但只能使用所需的高度。你们能帮我吗?

  • 我有一个针对不同元素的JPanels集合:JPanelShowPane、seasonsPane、episodesPane、airingsPane 所有这些元素的setLayout设置为null,大小固定为304x416。我将这些JPanel添加到一个大小为1280x416的名为showViewPanel的JPanel中,并设置了一个BoxLayout,如下所示(下面是JFrame中的代码): 我搞

  • 当我点击JButton时,什么都不会发生。这甚至适用于我放入的JScrollPane(它显示,但不会滚动)。为什么JPanel不在前面?我觉得有些东西必须被覆盖。应该是不是箭头部分的展开?如果是,如何做到这一点? 这是为疯狂程序员说,渲染器和编辑器使你放下的图像。在本例中,JButton是可单击的。

  • 我试图将一个JLabel和一个JScrollPane(包含一个JTextArea)对齐到一个JPanel的左边。当我把JTextArea直接放在面板中时,对齐是正确的。只有当JTextArea在滚动窗格中时,对齐方式才不正确。 下面的第一个图像带有滚动窗格,第二个图像没有滚动窗格。如何正确对齐滚动窗格?

  • 我在一个从上到下的boxLayout中有三个组件(JLabel、JTextField、JButton)。问题是,当我为标签设置X对齐方式时,它看起来好像我已经改变了按钮的X对齐方式,反之亦然,只有当两者的对齐方式相同时,它才能正常工作。 下面是我的代码:

  • 问题内容: 在我的JPanel中,我有许多组件,包括其他JPanels,JLabels,JTextAreas和JButtons。因为我想实现一个教程模式,在该模式下将出现另一个窗口,并且禁用主JPanel中的所有内容,因为新窗口逐个解释了每个“功能” …我想知道如何禁用我内部的所有组件。原始的JPanel。我知道您可以使用: 但是我不想为我的JPanel中的每个组件编写它。我想知道是否可以通过fo