2

我有null面板代码:

JPanel thePanel = new JPanel();
thePanel.setLayout(null);

setBounds(x, y, width, heigth)在这里使用过,例如:

label2.setBounds(150, 220, 459, 311);

我读到这不是一个好习惯,你能告诉我为什么吗?

仅仅是因为当您想在一个组件和另一个组件之间添加一些东西时,您必须一次又一次地设置它们的位置,还是其他什么?

4

1 回答 1

5

绝对定位存在多个问题:

  • 不同的屏幕尺寸和分辨率,在您的机器上看起来很棒的东西在另一个分辨率不同的屏幕上会呈现出不同的效果。
  • 同样,当用户调整屏幕大小时会发生什么,因为他们想与其他应用程序并排运行您的应用程序(复制粘贴或其他)
  • 不同的语言环境和字体大小,当您使用另一种语言环境或另一种字体或更改字体大小时,您的标签会发生什么。

可能还有更多原因,但使用布局管理器可以确保在调整窗口大小或容器内容更改时重新分配内容,...

一开始使用绝对定位可能是最简单的方法,但了解不同的布局管理器以及它们的操作方式是值得的。例如,由于需求的变化,它将使您免于很多麻烦。

于 2016-10-28T19:24:44.333 回答