一、Borderlayout布局
将界面分为东西南北中五个区,一个区域只可以放一个组件,具体代码运行的例子如下
package SwingComponent;
import javax.swing.*;
import java.awt.*;
public class BorderLayoutTest {
public static void main(String[] args) {
BorderLayoutTest borderLayoutTest=new BorderLayoutTest();
borderLayoutTest.go();
}
private void go() {
JFrame frame=new JFrame();
JButton east=new JButton("East");
JButton west=new JButton("West");
JButton north=new JButton("North");
JButton south=new JButton("South");
JButton center=new JButton("Center");
frame.getContentPane().add(BorderLayout.EAST,east);
frame.getContentPane().add(BorderLayout.WEST,west);
frame.getContentPane().add(BorderLayout.NORTH,north);
frame.getContentPane().add(BorderLayout.SOUTH,south);
frame.getContentPane().add(BorderLayout.CENTER,center);
frame.setSize(300,300);
frame.setVisible(true);
}
}
二、FlowLayout布局
依次从左至右、从上到下布局。通过panel.add()方法加入,是由FlowLayout布局来管理的
package SwingComponent;
import javax.swing.*;
import java.awt.*;
public class FlowLayoutTest {
public static void main(String[] args) {
FlowLayoutTest flowLayoutTest=new FlowLayoutTest();
flowLayoutTest.go();
}
private void go() {
JFrame frame=new JFrame();
Panel panel=new Panel();
panel.setBackground(Color.DARK_GRAY);
JButton button=new JButton();
JButton button1=new JButton();
panel.add(button);
panel.add(button1);
frame.getContentPane().add(BorderLayout.EAST,panel);
frame.setSize(250,200);
frame.setVisible(true);
}
}
三、BoxLayout布局
BoxLayout布局控件不管宽度是否可以容下组件,都会开启新的一行放置组件,垂直方向容纳组件。具体代码实现如下:
package SwingComponent;
import javax.swing.*;
import java.awt.*;
public class BoxLayoutTest {
public static void main(String[] args) {
BoxLayoutTest boxLayoutTest=new BoxLayoutTest();
boxLayoutTest.go();
}
private void go() {
JFrame frame=new JFrame();
JPanel panel=new JPanel();
panel.setBackground(Color.DARK_GRAY);
//在这里换掉布局管理 构造函数需要知道需要布局来管理的组件以及主轴
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
JButton button=new JButton();
JButton button1=new JButton();
panel.add(button);
panel.add(button1);
frame.getContentPane().add(BorderLayout.EAST,panel);
//pack()方法 设置window大小适应组件的大小
//frame.pack();
frame.setSize(250,200);
frame.setVisible(true);
}
}