如何在没有元素重叠的情况下在 java 中使用布局?

Posted

技术标签:

【中文标题】如何在没有元素重叠的情况下在 java 中使用布局?【英文标题】:how do I use layouts in java without elements overlapping? 【发布时间】:2021-11-29 17:07:01 【问题描述】:

我想让我的菜单栏和帮助栏彼此相邻,但如果它们共享相同的位置,它们会重叠,我如何让它们彼此相邻?

        add(menuBar, BorderLayout.PAGE_START);
        add(helpBar, BorderLayout.PAGE_START);

【问题讨论】:

菜单栏使用自己的布局。您不应该像当前尝试的那样使用这些 BorderLayout 约束。 见:What should I do when someone answers my question 【参考方案1】:

框架的标准 UI:

    标题栏 菜单栏 工具栏

垂直显示。

所以标准代码是:

frame.setJMenuBar( menuBar );
frame.add(toolBar, BorderLayout.Page_START);

如果您真的希望 menuBar 和 toolBar 显示在同一行,那么您需要将 toolBar 添加到 menuBar。

代码可能是这样的:

menuBar.add( Box.createHorizontalGlue() );
menuBar.add( toolBar );

现在工具栏将出现在框架的右侧。

如果您希望工具栏位于菜单栏旁边,请尝试:

menuBar.add( Box.createHorizontalStrut(10) );
menuBar.add( toolBar );

【讨论】:

以上是关于如何在没有元素重叠的情况下在 java 中使用布局?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不复制/粘贴的情况下在我的所有活动中使用这些元素?

如何在不重叠的情况下在 UIButton 中实现两个 IBAction?

如何在没有节点边缘重叠的情况下进行力导向布局

如何在没有要映射的对象数组的情况下在 React.js 中循环和渲染元素?

如何在没有 IllegalMonitorStateException 的情况下在 Java 中使用等待和通知?

如何在没有文本框的情况下在 Selenium 中上传文件