组件Component
容器Container
1.GUI简介 2.AWT 2.1Awt介绍1.包含很多类的接口
2.元素:窗口,按钮,文本框
3.java.awt
package com.kuang.lesson01;
import java.awt.*;
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(1,1,1));
frame.setLocation(200,200);
//窗口固定
frame.setResizable(false);
}
}
多个窗口
package com.kuang.lesson01;
import java.awt.*;
public class TestFrame2{
public static void main(String[] args) {
MyFrame myFrame=new MyFrame(100,100,200,200,Color.black);
MyFrame myFrame1=new MyFrame(200,100,200,200,Color.blue);
MyFrame myFrame2=new MyFrame(200,100,200,200,Color.gray);
}
}
class MyFrame extends Frame{
static int id=0;
public MyFrame(int x,int y,int w,int h,Color color){
super("MyFrame"+(++id));
setBounds(x,y,w,h);
setBackground(color);
setVisible(true);
}
}
注意:那个构造器前面不能加Void不然会报错
2.Panel面板是在Frame里面的
解决了关闭的事件
package com.kuang.lesson01;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
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(108,255,242));
panel.setBounds(20,20,400,400);
panel.setBackground(new Color(82,83,84));
frame.add(panel);
frame.setVisible(true);
//监听事件,监听窗关闭事件 System.exit(0)
//适配器模式: 用什么调用什么
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时需要做的事情
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}
布局管理
1.流式布局 FlowLayout
效果:
效果图:
其中frame.pack();填充的意思



