gpt4 book ai didi

java - 边框布局无法按预期工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:08 24 4
gpt4 key购买 nike

我想实现下面的布局。

enter image description here

有 6 个面板。顶部的4个按钮是一个面板,图像右侧的3个按钮也是一个面板。除了这两个之外,还有 4 个其他面板,如边界所示。我尝试了下面的代码,但以分散的方式显示了所有内容。

mainPanel.add(topToolBarPanel,BorderLayout.PAGE_START);
mainPanel.add(lefsideToolBarPanel,BorderLayout.LINE_START);
mainPanel.add(descriptionPanel,BorderLayout.LEFT);
mainPanel.add(mapPanel,BorderLayout.CENTER);
mainPanel.add(propertiesPanel,BorderLayout.EAST);
mainPanel.add(tablePanel,BorderLayout.PAGE_END);

如何实现如图所示的设计?我需要将所有面板都安排在该 mainPanel 内。虽然我不能使用空布局。请指教。

在 trashgod 的回答之后:

    JPanel gridPanel =  new JPanel(new GridLayout(1, 0));
gridPanel.add(jInternalFrame1);
gridPanel.add(descriptionPanel);
mainPanel.add(gridPanel, BorderLayout.LINE_START);
mainPanel.add(topToolBarPanel,BorderLayout.PAGE_START);
mainPanel.add(tablePanel,BorderLayout.PAGE_END);
mainPanel.add(mapPanel,BorderLayout.CENTER);
mainPanel.add(PropertiesPanel,BorderLayout.LINE_END);

我得到的:

enter image description here

最佳答案

lefsideToolBarPaneldescriptionPanel 添加到具有GridLayout 的面板;将新面板添加到 BorderLayout

Panel p  new Panel(new GridLayout(1, 0));
p.add(lefsideToolBarPanel);
p.add(descriptionPanel);
//mainPanel.add(lefsideToolBarPanel, BorderLayout.LINE_START);
//mainPanel.add(descriptionPanel, BorderLayout.LEFT);
mainPanel.add(p, BorderLayout.LINE_START);

没有 BorderLayout.LEFT。另见 A Visual Guide to Layout Managers .

附录:您更新的问题显示了 topToolBarPanel 的元素,这些元素应该添加到 PAGE_START,而不是 LINE_START

//mainPanel.add(topToolBarPanel,BorderLayout.LINE_START);
mainPanel.add(topToolBarPanel,BorderLayout. PAGE_START);

image

The width of the propertiesPanel and height of the tablePanel need to be increased. I used setSize()

对于 propertiesPanel,您可以覆盖 getPreferredSize(),如讨论的那样 here .对于 tablePanel,覆盖 getPreferredScrollableViewportSize() 以自定义表格的封闭 JScrollPane 的大小,对于 example .

关于java - 边框布局无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36809759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com