第十一周课程总结

AWT图形界面

AWT简介

抽象窗口工具包(Abstract Window Tookit)是为java程序提供建立图形用户界面(Graphics User Interface GUI)的工具集。主要包含如下组件:

1.      用户界面组件

2.      事件处理模型

3.      图形图像工具(形状、颜色、字体)

4.      布局管理器

AWT的优势:

  1.  最早的JAVA GUI包,内嵌到JDK中,无需引入其他类,功能稳定
    
  2.  AWT组件都是线程安全的
    
  3.  界面编程基础.  学会AWT, 很容易去学swing/SWT等功能较强大的GUI组件.
    

基本容器JFrame

1.JFrame 类窗体:窗口(默认不显示,方法setViserble(true/false),显示或则不显示)
注意:可以设置窗口本身位置,大小(像素),颜色,标题,

JFrame.setTitle(String name):窗口标题
JFrame.setSize(int x,int y):大小(像素)
JFrame.setLocation(int x,int y):窗口位置(表示窗口左上角在(x,y)位置)
JFrame.setViserble(true/false):默认不显示窗口
JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE):彻底结束该窗口(不设置时默认只是关闭了窗口,没有结束任务管理器中的进程)
JFrame.add(Button anniu):添加按钮
2、JButton
JButton类:组件(按钮)
JButton anniu=new JButton(String name):初始化按钮传入名字参数
JButton.setSize(int x,int y):如果不设置按钮的大小的话,按钮默认会充斥整个窗口
add(open);添加按钮,但是没有设置按钮大小(会充斥整个窗口),位置,点击时执行的触发的动作(没有监听)
add(close);添加按钮,但是没有设置按钮大小(会充斥整个窗口),位置,点击时触发的动作(没有监听)
setTitel("用户界面");类方法之设置窗口标题
setSize(250,250);类方法之设置窗口大小
setLocation(50,60);类方法之设置窗口位置
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);类方法之设置点关闭后进程结束,释放内存(不然打开一个进程多一个,资源被占用)
3.标签组件JLabel
标签有 JLabel 类定义,它的父类为 JComponet 类。
标签可以显示一行只读文本、一个图像或带图像的文本。
它并不能产生任何类型的事件,只能简单地展示图片和文本,
但是可以使用标签的特性指定标签上文本的对齐方式。
JLabel类提供了多种构造方法,可以创建多种标签,如展示只有文本的标签、
只有图标的标签或包含文本和图标的标签。

布局管理器

1.FlowLayout------像水流一样依次进行排列(流式)

import java.awt.*;
import javax.swing.*;
 
public class FlowLayoutDemO1 {
	public static void main(String[] args) {
		JFrame frame = new JFrame("Hello");// 实例化窗体对象
		frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));//所有组件居中对齐,水平和垂直间距为3
		JButton button = null;
		for(int i=0; i<9; i++){
			button = new JButton("按钮 - "+i);
			frame.add(button);//加入按钮
		}
		frame.setSize(28,14);//设置窗体大小
		frame.setVisible(true);//设置窗体可见
	}
}

2、BorderLayout------分东南西北中五个区域

import java.awt.*;
import javax.swing.*;
 
public class BorderLayoutDemO1 {
	public static void main(String[] args) {
		JFrame frame = new JFrame("Hello");// 实例化窗体对象
		frame.setLayout(new BorderLayout(3, 3));// 水平和垂直间距都是3
		frame.add(new JButton("East"), BorderLayout.EAST);
		frame.add(new JButton("South"), BorderLayout.SOUTH);
		frame.add(new JButton("West"), BorderLayout.WEST);
		frame.add(new JButton("North"), BorderLayout.NORTH);
		frame.add(new JButton("Center"), BorderLayout.CENTER);
		frame.pack();//根据组件自动调整窗体的大小
		frame.setLocationRelativeTo(null);//居中
		frame.setVisible(true);//设置窗体可见
	}
}

3、GridLayout------以表格形式进行排列,必须设置行数和列数

import java.awt.*;
import javax.swing.*;
 
public class GridLayout {
	public static void main(String[] args) {
		JFrame frame = new JFrame("Hello");// 实例化窗体对象
		frame.setLayout(new GridLayout(4,4,3,3));//4*4进行排列,水平和垂直间距都是3
		JButton button = null;
		for(int i=0; i<13; i++){
			button = new JButton("按钮 - "+i);
			frame.add(button);//加入按钮
		}
		frame.pack();//根据组件自动调整窗体的大小
		frame.setLocationRelativeTo(null);//居中
		frame.setVisible(true);//设置窗体可见
	}

4.CardLayout------将组件彼此重叠地进行布局,像一张张卡片一样,会彼此重叠,每次只展现一个界面
两种组件定位机制:绝对定位和布局定位。

绝对定位就是一种最原始的定位方法:给出这个组件的坐标和长宽值(设置每一个组件的具体位置)

posted @ 2019-11-08 18:14  罗宇梁  阅读(104)  评论(0编辑  收藏  举报