2016-11-17 97 views
0

在网上阅读了关于JPanel一段时间后,我觉得在阅读它之后仍然需要澄清。我的问题:JPanel和Java布局管理器

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

我发现真的很难使用布局管理器来定位容器内某些区域的组件。

你推荐使用哪种布局管理器?或者你必须使用不同的布局管理器?

+0

我回滚了你的问题,因为'@ camickr'从以前的版本中回答了你的问题。 –

+0

好吧谢谢!似乎更好! –

+0

@TT。就目前而言,3个问题“太广泛”。我让OP选择一个并将其他人分成不同的线程。可以说,camickr不应该回答,你不应该回滚OP的编辑。 –

回答

2

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

你已经知道了。您将组件添加到面板。

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

更灵活的是布局管理器,更复杂的布局管理器使用。所以技巧是设计你的GUI的逻辑,然后使用多个面板与不同的布局管理器来实现你的愿望效果。

每个布局经理都有自己的长处和短处。

我发现真的很难使用布局管理器在组件的某些区域定位组件。

这是旧思维。您不应该试图专门定位组件。您通常定位组件,并让布局管理器在用户更改框架大小时进行调整。

也许你想要组件居中,或在网格中。有不同的布局经理来完成你的任务。我们不能给出具体的建议。如果你有一个特定的问题,然后作为一个具体的问题,并张贴你的代码,显示你已经尝试过。

但首先,请阅读关于Layout Manager的Swing教程,并下载示例代码播放和代码,以了解它们各自的工作原理。你通过尝试学习。

2

您推荐使用哪种布局管理器?或者您必须使用不同的布局管理器。

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

  1. GridBagLayout - 年纪大了,但相当多才多艺。
  2. GroupLayout - 更新,更强大,并且提供了更好的能力来排列彼此不相邻的元素,但被认为是很难手写的,大多数情况下使用的GUI设计器会产生不能移植到下一个代码的代码GUI设计者或IDE。
  3. MigLayoutFormLayout
1

JPanel第三方布局管理器可用于:

  1. 至于其他组件的容器
  2. 基地定制插件
  3. 绘图区域

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

有在Swing多数布局管理器,但在我看来 只有三个是由工作:

  1. MigLayout
  2. GroupLayout
  3. FormLayout

由于MigLayout是(大大)改进FormLayout,我通常推荐 前两名经理。

使用各种经理的混合是一个不好的做法。这是一种克服基本布局管理器简单性的方法。应该选择一个好的布局管理器,而不是与多个布局管理器纠缠在一起。大多数布局可以通过MigLayoutGroupLayout轻松完成。