什么是布局管理器?你一个frame里面一般有几个panel对吧,你如果要自己调它们的位置,大小的话会比较麻烦,而且当窗口变大的时候它里面的panel又不会跟着变大,就很烦恼。所以,我们有这个东西,布局管理器,相当于一个小管家,你只要把panel啊,component什么的扔进去,他自己会帮你排好它的。
封装布局管理器的类在这个LayoutManager接口里面,不同的布局管理器有不同的布局风格。
首先看个FlowLayout:
这个是panel类的默认布局管理器,就是你不指定panel的布局管理器的话,就默认是这个。
例子:
import java.awt.*; public class TestFlowLayout { public static void main(String[] args) { Frame f = new Frame("lalaalla FlowLayout"); Button b1 = new Button("打开"); Button b2 = new Button("放屁"); Button b3 = new Button("关闭"); f.setLayout(new FlowLayout());//参数要是实现了接口LayoutManager的类 f.add(b1); f.add(b2); f.add(b3); f.setBounds(500,500,500,500); f.setBackground(Color.GREEN); f.setVisible(true); } }
FlowLayout l = new FlowLayout(FlowLayout.LEGHT,20,40);第一个参数是对齐方式,第二个是水平间距(零件之间),第三个是垂直间距。
再看另一种管理器,BorderLayout,它是frame类的默认layout管理器。
代码:
提一下,这些BorderLayout.NORTH什么的是int类型的.
GridLayout,grid是小格的意思
代码:
注意这里有个f.pack(),我们平时都是这里用f.setSize()来设定大小,pack()就是刚好在外面包它一圈.
注意,这几种布局管理器你既可以设在frame里面也可以设在panel里面,而panel本身又可以加自在frame里面。