组件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();填充的意思