import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test8 {
  public static void main(String args[]) {
      JFrame frame=new JFrame("九宫格");
      frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
      JButton but=null;
      for(int i=1;i<=9;i++)
      {
          but=new JButton("按钮-"+i);
          frame.add(but);
      }
      frame.setSize(280,230);
      frame.setVisible(true);
  }
}

截图:

学习内容:

图形界面:

图形界面编程主要特征:

1),图形界面对象及其框架(图形界面之间的包含关系)。

2),图形界面对象的布局(图形界面对象之间的位置关系)。

3),图形界面对象上的事件响应(图形界面对象上的动作)。

一,AWT,Swing简介

AWT:是Java提供的用来建立和设置Java图形用户界面的基本工具(其所有工具都保存在java.awt包中)。

主要分为以下3种:

1),组件:Component。(创建与平台无关的图形用户界面)

2),容器:Container。(收纳所有的组件,并可以给其设置位置,大小等)

3),布局管理器:LayoutManager。(合理摆放组件的位置)

Swing:是以AWT平台为基础构建起来的型组件(所有的Swing都保存在javax.swing包中,所有组件是从JComponent扩展出来的,此类实际上是java.awt.Component的子类)。

二,基础容器JFrame

1),常用操作方法:

方法 类型 描述
public JFrame() throws HeadlessException 构造 创建一个普通的窗体对象
public JFrame(0Syring tile) throws HeadlessException 构造 创建一个窗体对象,并指定标题
public void setSize(int width,int height) 普通 设置窗体大小
public void setSize(Dimension d) 普通 通过Dimension设置窗体大小
public void setBackground(Color c) 普通 设置窗体的背景颜色
public void setLoaction(point p) 普通 通过Point来设置组件的显示位置
public void setLoaction(int x,int y) 普通 设置组件的显示位置
public void setVisible(boolean b) 普通 显示或隐藏组件
public Comonent add(Component comp) 普通 向容器中增加组件
public void setLayout(LayoutManager mgr) 普通 设置布局管理器,如果设置为null,表示不使用
public void pack() 普通 调整窗口大小,以适合其子组件的首选大小和布局
public Container getContentPane() 普通 返回此窗体的容器对象

2),在JFrame中使用Dimension来设置窗体大小,此类封装的就是组件的显示宽度和高度。

Dimension类的常用方法:

方法 类型 描述
public Dimension() 构造 创建一个Dimension实例
public void setSize(double width,double heigth) 普通 设置显示的宽和高
public void setSize(int width,int heigth) 普通 设置显示的宽和高
public double getWidth() 普通 返回组件的宽
public double getHeight() 普通 返回组件的高

3),Point类显示组件的位置;

常用方法:

方法 类型 描述
public Point() 构造 在坐标原点创建对象
public Point(int x,int y) 构造 在指定的坐标点创建对象
public void setLocation(double x,double y) 普通 设置X,Y坐标
public void moven(int x,int y) 普通 设置X,Y坐标
pubilc void move(int x,int y) 普通 将组件移动到指定坐标位置,此方法与setLoaction(int,int)相同
public void translate(int dx,int dy) 普通 平移(x,y)位置的点,沿X轴平移dx,沿Y轴平移dy,异动后得到点(x+dx,y+dy)

三,标签组件JLabel

作用:用于显示信息(一般情况不能更改显示内容)

1),常用方法:

方法及其常量 类型 描述
public static fianl int LEFT 常量 标签文本左对齐
public static final int CENTER 常量 标签文本居中对齐
public static final int RIGHT 常量 标签文本右对齐
public JLabe() throws HeadlessException 构造 创建一个JLabel对象
public JLabel(String text) throws HeadlessException 构造 创建一个标签并指定文件内容,默认左对齐
public Label(String text,int alignment) throws HeadlessException 构造 创建一个标签并指定文本内容以及对其方式,可以使用JLabel.LEFT,JLabel.RIGHT,JLabel.CENTER3个值
public JLabel(String text,Icon icon,int horizontalAlignemnt) 构造 创建具有指定文本,图像和水平对齐方式的JLabel对象
public JLabel(Icon image,int horizontalAlignment) 构造 创建具有指定图像和水平对齐方式的JLabel实例
public void setText(String text) 普通 设置标签的文本
public String getText() 普通 取得标签的文本
public void setAlignment(int alignment) 普通 设置标签的对齐方式
public void setIcon(Icon icon) 普通 设置指定的图像

2),更改JLabel的文字样式:Font类(属于Component类中的方法)

Font类常用的方法:

方法及其常量 类型 描述
public static final int BOLD 常量 文字显示为粗体
public Static final int ITALIC 常量 文字显示风格为斜体
public static final PLAIN 常量 文字显示风格为普通样式
public Font(String name,int style,int size) 构造 实例化对象,指定显示风格级大小
public String getFontName() 普通 得到字体名称

3),在JLabel种设置图片:ImageIcon类

常用方法:

方法 类型 描述
public ImageIcon(byte[] imageData) 构造 将保存图片信息的byte数组设置到ImageIcon中
public ImageIcon(String filename) 构造 通过文件名称创建ImageIcon对象
public ImageIcon(String filename,String description) 构造 设置图片路径以及图片的简单描述

四,按钮组件JButton(使用此类可以直接在窗体中增加一个按钮)

常用方法:

方法 类型 描述
public JButton() throws HeadlessException 构造 创建一个Button对象
public JButton(String label) throws HeadlessException 构造 创建一个Button对象,同时指定显示内容
public JButton(Icon icon) 构造 创建一个带图片的按钮
public JButton(String text,Icon icon) 构造 创建一个带图片和文字的按钮
public void setLabel(String label) 普通 设置Button的显示内容
public String getLabel() 普通 得到Button的显示内容
public void setBounds(int x,int y,int width,int height) 普通 设置组件的大小及显示方式
public void setMnemonic(int mnemonic) 普通 设置按钮的快捷键

五,布局管理器

1,FlowLayout(属于流式布局管理器,使用此种布局方式会使所有的组件像流水一样依次进行排列)

常用方法及常量:

方法 类型 描述
public static final int CENTER 常量 居中对齐
public static final int LEADING 常量 与容器的开始端对齐方式一样
public static final int LEFT 常量 左对齐
public static final int RIGHF 常量 右对齐
public static fianl int TRAILING 常量 与容器的结束端对齐方式一样
public FlowLayout() 构造 构造一个新的FlowLayout,居中对齐,默认的水平和垂直间距是5个单位
public FlowLayout(int align) 构造 构造一个FlowLayout,并指定对齐方式
public FlowLayout(int align,int hgap,int vgap) 构造 指定对齐方式,水平,垂直间距

2,BorderLayout(将一个窗口的版面划分为东,西,南,北,中五个区域,可以直接将需要的组件方法到这五个区域)

常见的方法与常量

方法及常量 类型 描述
public static final String EAST 常量 将组件设置在东区域
public static final String WEST 常量 将组件设置在西区域
public static final String SOUTH 常量 将组件设置在南区域
public static final String NORTH 常量 将组件设置在北区域
public static fianl String CENTER 常量 将组件设置在中区域
public BorderLayout() 构造 构造没有间距的布局器
public BorderLayout(int hgap, int vgap) 构造 构造有水平和垂直间距的布局器

3,GridLayout(以表格形式进行管理组件)

常用方法

方法 类型 描述
public GridLayout(int rows,int cols) 构造 构造一个指定行和列的布局管理器
public GridLayou(int rows,int cols,int hgap,int vgap) 构造 构造时指定行和列,水平和垂直间距

4,GardLayout(将一个个组件重叠在一起布局,每次只展现一个界面)

常用的方法:

方法 类型 描述
public CardLayout() 构造 构造CardLayout对象,各组件间距为零
public CardLayout(int hgap,int vgap) 构造 构造CardLayout对象,指定组件间距
public void next(Container parent) 普通 翻转到下一张卡片
public void previous(Contanier parent) 普通 翻转到上一张卡片
public void first(Container parent) 普通 翻转到第一张卡片
public void last(Container parent) 普通 翻转到最后一张卡片
public void show(Container parent,String name) 普通 显示具有指定组件名称的开片

5,绝对定位:setBounds()方法(自己定义组件的位置,大小,不受窗口变大变小的影响)

方法定义如下:

public void setBounds(int x,int y,int width,int height)