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