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

JPanel和Java布局管理器

董良策
2023-03-14

在互联网上阅读了一段时间关于JPanel的内容后,我觉得我仍然需要澄清。我的问题:

  1. 什么是JPanel主要用于?
  2. 哪个布局管理器使用起来最灵活?
  3. 如何使用布局管理器在特定区域定位组件?

我发现使用布局管理器在容器内的某些区域定位组件非常困难。

您建议我使用哪种布局管理器,还是必须混合使用不同的布局管理器?

共有3个答案

蔺山
2023-03-14

JPanel可用于:

  1. 作为其他组件的容器
  2. 自定义小部件的基础
  3. 绘图区域

MigLayout是最灵活的布局管理器。

有许多布局经理在工作,但在我看来,只有三个能胜任这项工作:

  1. migloayout
  2. GroupLayout
  3. FormLayout

由于miglaway是一种(大大)改进的FormLayout,我通常推荐前两位经理。

混合使用不同的经理是一种糟糕的做法。这是一种克服基本布局管理器的简单性的方法。一个人应该选择一个好的布局管理器,不要纠结于多个布局管理器。大多数布局可以通过MigLayoutGroupLayout轻松完成。

梅修贤
2023-03-14

你建议我使用哪种布局管理器,还是必须混合使用不同的布局管理器。

这取决于GUI。除了最琐碎的用户界面,我通常会使用布局管理器的组合。另一方面,有些人喜欢尝试为那些相同的图形用户界面使用更复杂的布局,使用像这样的布局:

  1. GridBagLayout-较旧,但用途相当广泛
颜森
2023-03-14

我的第一个问题是JPanel主要用于什么。

你已经知道了。将零部件添加到配电盘。

我的第二个问题是哪种布局管理器使用最灵活

布局管理器越灵活,使用布局管理器就越复杂。因此,诀窍是逻辑地设计GUI,然后使用多个具有不同布局管理器的面板来实现您想要的效果。

每个布局管理器都有自己的优缺点。

我发现使用布局管理器在容器内的某些区域定位组件非常困难。

那是陈旧的想法。您不应该试图特定地定位组件。您通常定位组件,并让布局管理器根据用户更改的框架大小进行调整。

也许你想要组件居中,或者在网格中。有不同的布局管理器来实现您的任务。我们不能给出具体的建议。如果你有一个特定的问题,然后作为一个特定的问题,发布你的代码,显示你已经尝试了什么。

但是,首先,阅读布局管理器上的Swing教程,下载示例代码,并使用这些代码来理解它们的工作原理。你通过尝试学习。

 类似资料:
  • 我需要在中制作这样的表。 有什么想法如何做到这一点,以获得像下面图片上的布局吗?

  • *label1:combo1 label2:combo2 label3:combo3 label4:text1 label5:text2 label6:text3*

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

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

  • 问题内容: 您的Java Swing工具集中有哪些库/工具? XUL 布局经理 打包机/安装程序 图书 等等..... 问题答案: 这是我用的: “框架” :Swing应用程序框架并没有做很多,但是做得很好(如果使用它,您可能想看看我去年做过的一个演示文稿) JTables :处理表通常很麻烦(很多样板代码…);我通常使用GlazedLists,这大大简化了工作(并带来了许多改进) EventBu

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