2.
2.1、AWT介绍
-
其包含了很多的类和接口。
-
元素:窗口,按钮,文本框。
-
Java.awt:
2.2、
1、Frame
代码:
package com.edwin.lession01;
import java.awt.*;
//GUI第一个界面
/**
* @author EdwinD
* @create 2020.08.16 上午 10:03
* @desc
**/
public class TextFrame1 {
public static void main(String[] args) {
// Frame,JDK,查看源码
Frame frame = new Frame("My First Java 图形界面");
// 设置窗口可见性,无关于窗口大小.
frame.setVisible(true);
// 设置窗口大小
frame.setSize(777, 777);
// 设置背景颜色
frame.setBackground(new Color(77,77,77));
// 设置初始位置
frame.setLocation(777,77);
// 控制窗口大小是否可改变,默认为True,即可以改变。
frame.setResizable(false);
}
}
输出效果:
缺点:
此时的窗口无法关闭,只能通过IDEA停止代码,才可以关闭整个窗口。
封装后多窗口输出:
代码2.0:
package com.edwin.lession01;
import java.awt.*;
public class TextFrame2 {
public static void main(String[] args) {
// 展示多个窗口new
new MyFrame(77, 77, 350, 350, Color.blue);
new MyFrame(77, 477, 350, 350, Color.red);
new MyFrame(477, 77, 350, 350, Color.green);
new MyFrame(477, 477, 350, 350, Color.gray);
}
static 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);
setBounds(x, y, w, h);
setBackground(color);
}
}
}
输出2.0:
2、Panel
解决了关闭的小问题。
**注:**Frame在add一个Panel的时候,使用的是frame.add(Component comp),这是因为Panel类extends了Container,而Container类extends了Component。
监听器小剧透
- 添加监听事件,使用窗口上方的小叉叉进行关闭.调用System.exit(0).
对于目前所编写的面板,窗口,都是无法直接通过点击上方的小叉进行关闭的,这里需要用到一些后面的监听器的内容进行功能的实现。
1.常规情况下的监听器:
frame.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
});
但是这里使用到的监听器是全部的,太过于全面,我们只需要里面的部分监听器进行工作即可。因此,我们可以尝试调用其子类:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// 结束程序
System.exit(0);
}
});
- System.exit(0):正常关闭;System.exit(1):异常关闭.其关闭对象是Java程序。
效果:
路漫漫其修远兮,吾将上下而求索。
参考文献
《【狂神说Java】GUI编程入门到游戏实战》
视频链接
2020.08.18