为什么在Java Swing中,null布局和绝对位置是不好的做法?

时间:2016-10-28 19:15:13

标签: java swing setbounds

我的代码是空面板:

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

我使用了setBounds(x,y,width,heigth),f.e here:

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

我读到这不是一个好习惯,你能告诉我为什么吗? 是否只是因为当你想在一个组件和另一个组件之间添加某些东西时,你必须一次又一次地设置它们的位置,还是其他的呢?

我非常感谢你的回答,谢谢! ;)

1 个答案:

答案 0 :(得分:5)

绝对定位存在多个问题:

  • 不同的屏幕尺寸和分辨率,在您的机器上看起来很棒的内容会在具有不同分辨率的另一个屏幕上有所不同。
  • 同样,当用户调整屏幕大小时会发生什么,因为他们希望与其他应用程序一起运行您的应用程序(复制粘贴或其他任何内容)
  • 不同的区域设置和字体大小,当您使用其他区域设置或其他字体或更改字体大小时,标签会发生什么。

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

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