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)