目录
一、面板
面版(Jpanel)是一种用途广发的容器,但是与顶层容器不同的是,面板不能独立存在,必须被添加到其他容器内部。面板可以嵌套,由此设计出复杂的图形用户界面。
import java.awt.*;
import javax.swing.*;
public class xuexipanel{
public static void main(String args[]){
JFrame frame=new JFrame("xuexiJFrame");
Container contentPane = frame.getContentPane();
contentPane.setBackground(Color.red);//将内容窗格的背景设置为红色
JPanel panel=new JPanel();//创建panel对象
panel.setBackground(Color.yellow);//设置panel对象背景为黄色
JButton button = new JButton("HELLO EVERYONE");//创建按钮对象
panel.add(button);
contentPane.add(panel,BorderLayout.CENTER);//将面板添加到内容窗格
frame.setSize(400,300);
frame.setVisible(true);
}
}
二、布局管理器
- 布局管理器有FlowLayout布局管理器
- BorderLayout布局管理器
- GridLayout布局管理器
- BoxLayout布局管理器
1.FlowLayout布局管理器
FlowLayout定义在Java.awt包中,这个布局管理器对容器中组件进行布局的方式是将组件逐个地放置在容器中的一行上,一行放满就另起一行。它不强行设置组件的大小,而是允许组件拥有各自希望的尺寸。
三种构造方法:
- public FlowLayout()将组件居中放置在容器的某一行上。
- public FlowLayout(int align)可以使用align方式将组件设置为左对齐或者右对齐方式以及剧中。
- public FlowLayout(int align,int hgap,int vgap)使用hgap和vgap可以设定组件的水平间距和垂直间距。
2.BorderLayout布局管理器
BorderLayout定义在Java.awt包中,BorderLayout布局管理器是顶层容器中内容窗格的默认布局管理器。被划分为东、南、西、北、中五个区域,在容器的每个区域,可以加一个组件。
两种构造方法:
- BorderLayout()构造一个各部分间距为0的实列。
- BorderLayout(int hgap,int vgap)构造一个各部分间具有指定间距的BorderLayout实列。
在BorderLayout布局管理器的管理下,组件必须通过add()方法加入容器中指定的区域,例如:
注意:
- 如果没有指定放在哪里,则默认放在中间。
- 在容器的每一个区域只能放一个组件,如果放多个组件在同一区域则默认最后一个组件是有效组件。
- 如果某个组件没被用到,那么最后它所占的区域会变为零。
3.GridLayout布局管理器
GridLayout定义在java.awt包中,GridLayout布局管理器是一种网格式的布局管理器,它将容器空间划分为若干行乘若干列的网格,组件依次放入其中,每个组件占据一格。
三种构造方法:
- public GridLayout()创建一个只有一行的网格,列数根据实际需要而定。
- public GridLayout(int rows,int cols)可以指定行数和列数;可以其中一个值为0,但是不能两个数都为0。
- public GridLayout(int rows, int cols,int hgap,int vgap)可以指定网格间的水平间距和垂直间距。
4.CardLayout布局管理器
CardLayout布局管理器定义在java.awt包中,是一种卡片式布局管理器,它将容器中的组件处理为一系列卡片,每一时刻只显示出其中一张。
5.BoxLayout布局管理器
BoxLayout布局管理器是定义在javax.swing包中的布局管理器,它将容器中的组件按水平方向排成一行或者按垂直方向拍成一列。当组件拍成一行时,每个组件可以有不同的宽度;当组件拍成一列时,每个组件可以有不同的高度。
构造方法:
BoxLayout(Container target,int axis)其中target指明是为哪个容器设置此BoxLayout布局管理器,axis指明组件的排列方向,BoxLayout.X_AXIS表示按水平方向排列,BoxLayout.Y_AXIS表示按垂直方向排列。