Ⅰ java怎樣放兩個按鈕在窗體的正中間
JPanel 放入到BorderLayout.CENTER , 那麼會自動填充滿整個contentPane的中間, 而JPanel內部還是流式布局, 一行排滿 自動換到下一行,從上到下. 所以按鈕還是在最上面.
(把JPanel的背景色改成藍色,就可以清晰的看到JPanel填滿了窗口)
importjavax.swing.*;
{
publicJFDemo2(){
JPanelpane=newJPanel();
BoxLayoutlayout=newBoxLayout(pane,BoxLayout.X_AXIS);//水平的盒布局
pane.setLayout(layout);
JButtonmessageButton=newJButton("OK");
JButtoncloseButton=newJButton("Cancel");
pane.add(Box.createGlue());//擠佔ok按鈕和窗口左側空間
pane.add(messageButton);
pane.add(Box.createHorizontalStrut(20));//按鈕之間的水平距離
pane.add(closeButton);
pane.add(Box.createGlue());//擠佔cancel按鈕和窗口右側空間
add(pane);
setTitle("Demo");//標題
setSize(320,230);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//窗口點擊關閉時,退出程序
}
publicstaticvoidmain(String[]args){
newJFDemo2().setVisible(true);
}
}
總結: 推薦使用方法二,使用盒布局來實現.
一般不推薦使用絕對布局/空布局 來布局窗口, 因為不同的操作系統下顯示的效果不完全一致.
並且還需要寫大量的代碼來計算組件的大小和位置, 當窗口放大和縮小時 還需要重新計算位置