AWT
1 AWT介绍
-
包含很多类和接口!GUI!
-
元素:窗口,按钮,文本框
-
java.awt
2 组件和容器
2.1 Frame
package com.deng.lesson01; import java.awt.*; //GUI的第一个界面 public class TestFrame { public static void main(String[] args) { //Frame JDK 看源码 Frame frame= new Frame("我的第一个Java图像窗口"); //需要设置可见性 frame.setVisible(true); //设置窗口大小 w .h frame.setSize(400,400); //设置背景颜色 color frame.setBackground(new Color(0x00E156)); //弹出的初始位置 frame.setLocation(100,100); //设置大小固定 frame.setResizable(false); } }
问题: 发现窗口停止不掉,停止java程序!
尝试回顾封装
package com.deng.lesson01; import java.awt.*; public class TestFrame2 { public static void main(String[] args) { //展示多个窗口 new 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); MyFrame myFrame4 =new MyFrame(300,300,200,200,Color.green); } } 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);//可见性 setBackground(color);//背景颜色 setBounds(x,y,w,h);//窗口的初始位置与大小 } }
2.2 面板Panel
解决了关闭问题
package com.deng.lesson01; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; //panel 可以看成是一个空间,但是不能单独存在 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(24, 124, 38)); //Panel设置坐标与背景颜色,相对于frame panel.setBounds(50,50,400,400); panel.setBackground(new Color(113, 15, 15)); //frame.add(panel) frame.add(panel); frame.setVisible(true); //监听事件,监听窗口关闭事件 System.exit(0); //适配器模式: frame.addWindowListener(new WindowAdapter() { //窗口点击关闭时需要做的事 @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); //结束程序 System.exit(0); } }); } }