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

Java中的多个布局管理器

秦晋
2023-03-14

有没有办法在Java中使用多个布局管理器。现在我正在使用gridLayout来实现一个国际象棋棋盘,但在它下面我想放一些其他的东西,但不是在gridLayout中。可能是流程布局或其他布局。我该怎么做呢?谢谢

共有2个答案

赵锐
2023-03-14

有办法在Java中使用多个布局管理器。

绝对地事实上,使用多个布局管理器是常态。

我该怎么做呢?

任何容器子类都可以有一个布局管理器并包含子元素。每个子元素本身都可以是一个包含子元素的容器。顶层框架下面最常用的容器是JPanel

对于您的示例,您可能应该为框架使用BorderLayout,将网格放在其CENTER位置的JPanel(因为当其他位置被赋予首选大小时,该位置将获得所有可用的剩余空间)和另一个在SOUTH位置带有“其他东西”的JPanel

有关布局管理器的Swing教程中提供了更多详细信息。

常睿范
2023-03-14

是的,您所需要的只是规划您的总体UI布局(即窗口、主面板等)

例如,你需要在你的棋盘下放一些东西,我通常会在基本级别上使用边框布局。

因此,假设我有一个名为主面板的JPanel,它包含了我的象棋应用程序的所有组件。所以,代码看起来像:

JPanel masterPanel = new JPanel(new BorderLayout());
JPanel chessBoardPanel = createChessboardPanel(); //assuming this method will return a
//JPanel with chess board using GridLayout
JPanel infoPanel = new JPanel(); //this is the panel that would contain info elements, that //may go below my chess board.
//Now add everything to master panel.
masterPanel.add(chessBoardPanel, BorderLayout.CENTER);
masterPanel.add(infoPanel, BorderLayout.PAGE_END);
//add masterPanel to your window (if required)
this.getContentPane().add(masterPanel);
 类似资料:
  • *label1:combo1 label2:combo2 label3:combo3 label4:text1 label5:text2 label6:text3*

  • 在一个GUI程序里,布局是一个很重要的方面。布局就是如何管理应用中的元素和窗口。有两种方式可以搞定:绝对定位和PyQt5的layout类 绝对定位 每个程序都是以像素为单位区分元素的位置,衡量元素的大小。所以我们完全可以使用绝对定位搞定每个元素和窗口的位置。但是这也有局限性: 元素不会随着我们更改窗口的位置和大小而变化。 不能适用于不同的平台和不同分辨率的显示器 更改应用字体大小会破坏布局 如果我

  • 在一个 GUI 程序里,布局是一个很重要的方面。布局就是如何管理应用中的元素和窗口。有两种方式可以搞定:绝对定位和 PyQt5 的 layout 类 绝对定位 每个程序都是以像素为单位区分元素的位置,衡量元素的大小。所以我们完全可以使用绝对定位搞定每个元素和窗口的位置。但是这也有局限性: 元素不会随着我们更改窗口的位置和大小而变化。 不能适用于不同的平台和不同分辨率的显示器 更改应用字体大小会破坏

  • 在互联网上阅读了一段时间关于的内容后,我觉得我仍然需要澄清。我的问题: 什么是主要用于? 哪个布局管理器使用起来最灵活? 如何使用布局管理器在特定区域定位组件? 我发现使用布局管理器在容器内的某些区域定位组件非常困难。 您建议我使用哪种布局管理器,还是必须混合使用不同的布局管理器?

  • 问题内容: 我有使用小组布局来组织一些标签的面板。调整大小后,我想将此面板保持在屏幕中央。如果我使用流布局将面板放置在另一个面板中,则可以使标签水平居中,而不能垂直居中。哪个布局管理器允许我将面板保持在屏幕中央? 我还尝试了边框布局,并将其放置在中心,但其大小调整为窗口大小。 问题答案: 尝试使用a 并添加带有空对象的面板。 例如: