Ⅰ 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);
}
}
总结: 推荐使用方法二,使用盒布局来实现.
一般不推荐使用绝对布局/空布局 来布局窗口, 因为不同的操作系统下显示的效果不完全一致.
并且还需要写大量的代码来计算组件的大小和位置, 当窗口放大和缩小时 还需要重新计算位置