1.AWT
2.1、Awt介绍 抽象的窗口工具
1.包含了很多的类和接口! GUI:图形用户界面 Eeclipse: java
2.元素:窗口,按钮,文本框
3.javaawt
4.组件: component 按钮:button 文本域:TextArea 容器: Container
按钮需要存放在容器中 add
容器分两部分:1. Windows窗口 2.面板Panel
Windows: 1.Frame 窗口
2.Dialog 弹窗
面板:Applet
2.2组件和容器
1.Frame
package lesson01; import java.awt.*; //GUI的第一个界面 public class TextFrame { public static void main(String[] args){ //Frame JDK, 查源码! Frame frame = new Frame("我的第一个Java图像界面窗口"); //需要设置可见性 frame.setVisible(true); //设置窗口大小 frame.setSize(400,400); //设置背景颜色 Color frame.setBackground(Color.BLACK); //弹出的初始位置 frame.setLocation(200,200); //设置大小固定 frame.setResizable(false); } }
多个窗口
package lesson01; import java.awt.*; public class TextFrame02 { 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.yellow); MyFrame myFrame3 = new MyFrame(100, 300, 200, 200, Color.red); MyFrame myFrame4= new MyFrame(300, 300, 200, 200, Color.MAGENTA); } } class MyFrame extends Frame{ static int id = 0;//可能存在多个窗口,所以说我们需要一个计数器 public MyFrame(int x,int y,int w,int h,Color color){ super("MyFrame+"+(++id)); setBackground(color); setVisible(true); setBounds(x,y,w,h); } }
2.面板 Panel
解决了我们的关闭事件!
package lesson01; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; //Panel 可以看成是一个空间,但是不能单独存在 public class TextPanel { 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(40,161,35)); //Panel设置坐标,相对于frame panel.setBounds(50,50,400,400); panel.setBackground(new Color(171, 16, 0)); //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); } }); } }
3.布局管理器
-
流式布局
package lesson01; import java.awt.*; public class TestFlowLayout { public static void main(String[] args) { //创建一个新的窗口 Frame frame = new Frame(); //组件-按钮 Button button1 = new Button("button1"); Button button2 = new Button("button2"); Button button3 = new Button("button3"); //设置为流式布局时 frame.setLayout(new FlowLayout()); //设置一个大小 frame.setSize(200,200); frame.setVisible(true); //把按钮添加上去 frame.add(button1); frame.add(button2); frame.add(button3); } }
-
东西南北中
package lesson01; import java.awt.*; public class TestBorderLayout { public static void main(String[] args){ Frame frame = new Frame("TestBorderLayout"); Button east = new Button("East"); Button west = new Button("West"); Button south = new Button("South