1. 简介
GUI的核心技术:Swing, AWT
为什么没有流行起来?
因为界面不美观
需要JRE环境,太大了
为什么需要学习?
写出自己心中想要的一些小工具
工作的时候,也可能需要维护Swing界面
了解MVC架构,了解监听
2. AWT
2.1 AWT介绍
包含了很多的类和借口,GUI:图形用户界面编程
new 类,AWT:Abstract windows tools
元素:窗口,按钮,文本框
Java.awt包
![Screen Shot 2020-12-21 at 2.16.31 PM](/Users/wangyasi/Library/Application Support/typora-user-images/Screen Shot 2020-12-21 at 2.16.31 PM.png)
2.2 组件和容器
1. Frame
package com.yasi.lesson01;
import java.awt.*;
// GUI的第一个界面
public class TestFrame {
public static void main(String[] args) {
//frame, JDK, 看源码
Frame frame = new Frame("我的第一个Java图形界面窗口");
//需要设置可见性, width, height
frame.setVisible(true);
//设置窗口大小
frame.setSize(400, 400);
//设置背景颜色, color
frame.setBackground(new Color(219, 14, 14));
//设置弹出的初始位置
frame.setLocation(200, 200);
//设置大小固定
frame.setResizable(false);
}
}
问题:发现窗口关闭不掉,停止Java程序!
回顾封装:
public class TestFrame2 {
public static void main(String[] args) {
//展示多个窗口
MyFrame myFrame1 = new MyFrame(100, 100, 200, 200, Color.blue);
MyFrame myFrame2 = new MyFrame(300, 100, 200, 200, Color.red);
MyFrame myFrame3 = new MyFrame(100, 300, 200, 200, Color.pink);
MyFrame myFrame4 = new MyFrame(300, 300, 200, 200, Color.MAGENTA);
}
}
class MyFrame extends Frame{
static int id = 0;//可能存在多个窗口,所以需要一个计数器
public MyFrame(int x, int y, int w, int h, Color color) {
super("My frame + " + (++id));
setVisible(true);
setBounds(x, y, w, h);
setBackground(color);
}
}
2. 面板Panel
有一个特性:不能单独存在
3. Layout布局管理器
流式布局
东南西北中
表格布局
3. Swing