GUI学习-实现窗口
首先 设计第一个窗口的各项属性:
public class TestFrame {
//GUI 第一个界面
public static void main(String[] args) {
// Frame
Frame frame = new Frame("我的第一个Java图形界面窗口");
// 设置可见性
frame.setVisible(true);
// 设置窗口大小
frame.setSize(400,400);
// 设置背景颜色 Color
frame.setBackground(new Color(14, 14, 203));
// 弹出初始位置
frame.setLocation(200,200);
// 设置大小固定
frame.setResizable(false);
}
// 问题 窗口无法关闭
}
运行代码样式:
回顾JAVA封装 进行第二次窗口设计:
public class TestFrame1 {
public static void main(String[] args) {
// 展示多个窗口
MyFrame myFrame1 = new MyFrame(100,100,200,200,new Color(9, 227, 9));
MyFrame myFrame2 = new MyFrame(300,100,200,200,new Color(10, 82, 224));
MyFrame myFrame3 = new MyFrame(100,300,200,200,new Color(217, 9, 52));
MyFrame myFrame4 = new MyFrame(300,300,200,200,new Color(236, 187, 7));
}
}
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);
}
}
运行结果:
Panel学习:嵌套在Frame中:可以通过监听解决窗口关闭问题
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
// Panel 解决了关闭事件
public class TestPanel {
// Panel可以看成是一个空间 但是不能单独存在
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(7, 85, 239));
// Panel设置坐标,相对于Frame
panel.setBounds(50,50,250,250);
panel.setBackground(new Color(246, 9, 9));
// frame.add(panel)
frame.add(panel);
frame.setVisible(true);
// 监听事件:监听窗口关闭事件 System.exit(0)
// 适配器模式
frame.addWindowListener(new WindowAdapter() {
// 窗口关闭要做的事情
@Override
public void windowClosing(WindowEvent e) {
// 结束程序
System.exit(0);
}
});
}
}
运行实现截图: