GUI编程
简介
组件:
窗口、弹窗、面板、文本框、列表框、按钮、图片
监听事件、鼠标、键盘、破解工具
-
GUI核心技术:Swing、AWT
AWT介绍
抽象的窗口工具,包含了很多类和接口
元素:窗口、按钮、文本框
java.awt
第一个Frame窗口
组件和容器
//关闭JAVA程序运行即可关闭窗口
import java.awt.*;
//GUI的第一个界面
public class TestFrame {
public static void main(String[] args) {
//Frame,JDK
Frame frame = new Frame("我的第一个JAVA图像界面窗口");
//设置可见性
frame.setVisible(true);
//设置窗口大小
frame.setSize(400,400);
//设置背景颜色
frame.setBackground(new Color(255,1,1));
//弹出的初始位置
frame.setLocation(200,200);
//设置窗口大小固定
frame.setResizable(false);
}
}
多个窗口
import java.awt.*;
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.yellow);
}
}
class MyFrame extends Frame{
static int id = 0;//可能存在多个窗口,需要一个计数器
public MyFrame(int x,int y,int w,int h,Color color){
super("MyFrame" + (++id));
setBackground(color);
setBounds(x,y,w,h);
setVisible(true);
}
}
Panel面板讲解
解决了关闭事件
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
//可以看成一个空间,不能单独存在
public class TestPanel {
public static void main(String[] args) {
Frame frame = new Frame();
//布局的概念
Panel panel = new Panel();
//设置布局
frame.setLayout(null);
//坐标
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(20,161,35));
//Panel设置坐标,相对于frame
panel.setBounds(50,50,400,400);
panel.setBackground(new Color(193,15,60));
//frame.add()
frame.add(panel);
frame.setVisible(true);
//监听事件,关闭窗口
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭的时候结束程序
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
3种布局管理器
流式布局
东西南北中
表格式布局
流式布局
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestFlowLayout {
public static void main(String[] args) {
Frame frame = new Frame();
//组件-按钮
Button button1 = new Button("button1");
Button button2 = new Button("button1");
Button button3 = new Button("button1");
//设置为流式布局
frame.setLayout(new FlowLayout());//居中
/*靠左
frame.setLayout(new FlowLayout(FlowLayout.LEFT));*/
frame.setSize(200,200);
//添加按钮
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.setVisible(true);
//监听事件,关闭窗口
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭的时候结束程序
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
东西南北中
表格式布局
事件监听
输入框事件监听
简易计算器、回顾组合内部类
画笔Paint
鼠标监听时间、模拟画图工具
窗口监听事件
键盘监听事件
Swing之JFrame窗体
JDialog弹窗
Icon、Imagelcon标签
文本域JScroll面板
图片按钮、单选框、多选框
下拉框、列表框
文本框、密码框、文本域
###