1
我一直使用空布局,而且很多人会说它不应该这样做。有没有更好的办法?Java,将布局设置为空
一些代码示例:
import javax.swing.*;
public class Main{
public static void main(String args[]){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JButton button = new JButton("Click");
//JFrame, frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//JPanel, panel
panel.setLayout(null); //<<---- Is this correct?
frame.add(panel);
//JButton, button
button.setBounds(25, 25, 100, 60); //<<---- Is this correct?
panel.add(button);
}
}
有一个原因,有人说不要使用'null'布局,而是利用适当的布局经理。像素完美的布局是现代UI设计中的幻想。影响组件的个体大小的因素太多,其中没有一个可以控制。 Swing被设计为与布局管理者一起工作,放弃这些将导致问题和问题的结束,你将花费越来越多的时间来纠正 – MadProgrammer
虽然null布局和'setBounds()'看起来像Swing新手似的创建复杂GUI的最简单和最好的方式,更多Swing GUI的创建使用它们时遇到的更严重的困难。它们不会在GUI大小调整时调整组件的大小,它们是增强或维护的皇室女巫,当它们放在滚动窗格中时它们会完全失败,在所有平台或屏幕分辨率与原始视图不同时,它们看起来会非常糟糕。 –
早在90年代后期,API的设计者就发现了GUI的跨平台开发可能发生的问题,并在框架的核心部分设计了布局管理API。如果你看看Android和iOS等更现代化的框架,他们或者已经或者正在将布局管理器引入到他们的框架中,原因与台式机相同,因为生活更简单。一旦你习惯了使用布局管理器,你不会希望没有它们。 – MadProgrammer