Java入门GUI第一章
一.简介
GUI的核心技术:Swing AWT
现在GUI逐渐被淘汰,因为:
- 界面不美观
- 需要jre环境
为什么我们要学习?
- 可以写出自己想要的小工具
- 工作时候可能会遇到维护Swing界面,概率特别小!
- 了解MVC架构,了解监听!
二.AWT
1.介绍
- 包含了很多类和接口!GUI!
- 元素:窗口、按钮、文本框
- java.awt
2.组件和容器
(1).frame
单个frame
// 实例化frame类
Frame frame = new Frame("这个一个框");
// 设置可见性
frame.setVisible(true);
// 设置窗口大小
frame.setSize(500, 500);
// 设置窗口背景颜色,实例化Color类
frame.setBackground(new Color(50, 70, 300));
// 设置窗口的弹出位置
frame.setLocation(300, 300);
// 设置窗口大小不可拖动改变
frame.setResizable(false);
效果:
问题:无法关闭窗口,停止java程序
多个frame
我们先写一个frame的封装类:
import java.awt.*;
public class MyFrame extends Frame {
// 静态序号,计算窗口个数
static int id = 0;
// 使用构造函数初始化弹出属性
// 初始化的属性有大小,弹出位置,背景颜色
public MyFrame(int x, int y, int w, int h, Color color) {
// 计算窗口个数
super("myFrame"+(++id));
// 设置窗口可视化
setVisible(true);
// 设置窗口大小与弹出位置,使用Bounds可以同时设置
setBounds(x, y, w, h);
// 设置窗口背景颜色
setBackground(color);
}
}
再写测试类:
public class Application {
public static void main(String[] args) {
MyFrame myFrame1 = new MyFrame(100, 100, 400, 400, Color.black);
MyFrame myFrame2 = new MyFrame(500, 100, 400, 400, Color.red);
MyFrame myFrame3 = new MyFrame(100, 500, 400, 400, Color.blue);
MyFrame myFrame4 = new MyFrame(500, 500, 400, 400, Color.green);
}
}
效果:
(2).panel 面板
- frame中放置一个固定面板
// 先完成窗口的设置 Frame frame = new Frame(); frame.setVisible(true); frame.setBounds(300, 300, 500, 500); frame.setBackground(new Color(128, 253, 190)); // 将组件的布局设置为空布局,使你能够手动控制组件的位置和大小。 frame.setLayout(null); // 面板的设置与窗口一样,但是面板在窗口里面要注意位置与大小 // Panel是面板,可以放在窗口中,不能单独存在 Panel panel = new Panel(); frame.setVisible(true); panel.setBounds(50, 50, 400, 400); panel.setBackground(new Color(238, 47, 142)); // 添加面板进窗口, frame.add(panel);
效果:
解决无法关闭窗口,停止java程序,后面还会再讲看不懂跳过