Gui的核心技术:Swing、AWT
包含了很多类和接口!GUI:图形用户界面编程
元素:创空、按钮、文本框
单个窗口
- package com.yl;
-
- import java.awt.*;
-
- public class TestFrame {
- public static void main(String[] args) {
- Frame frame = new Frame("我妹最漂亮");
- //设置可见性
- frame.setVisible(true);
- //设置窗口大小
- frame.setSize(666,222);
- //设置背景颜色
- frame.setBackground(new Color(191, 183, 27));
- //设置弹出的初始位置
- frame.setLocation(222,222);
- //设置大小固定
- frame.setResizable(false);
- }
- }
停止java运行才可以关闭窗口
多个窗口
- package com.yl;
-
- import java.awt.*;
-
- public class TestFrame2 {
- public static void main(String[] args) {
- MyFrame frame = new MyFrame(100, 100, 500, 500, Color.yellow);
- MyFrame frame2 = new MyFrame(150, 150, 500, 500, Color.red);
- MyFrame frame3 = new MyFrame(200, 200, 500, 500, Color.pink);
- MyFrame frame4 = new MyFrame(250, 250, 500, 500, Color.orange);
- }
-
- }
- 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);
- setBounds(x,y,w,h);
- setVisible(true);
- }
- }

解决关闭窗口问题
- package com.yl;
-
- import java.awt.*;
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
-
- //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(203, 243, 29, 255));
- //Panel设置坐标,相对于frame
- panel.setBounds(50,50,400,400);
- panel.setBackground(new Color(207, 25, 25));
- //frame.add(panel) Container extends Component, Panel extends Container
- frame.add(panel);
- frame.setVisible(true);//设置可见性
- //监听窗口关闭时间
- frame.addWindowListener(new WindowAdapter() {
- //结束程序
- @Override
- public void windowClosing(WindowEvent e) {
- System.exit(0);
- }
- });
- }
- }
- package com.yl;
-
- import java.awt.*;
-
- public class TestLowLayout {
- public static void main(String[] args) {
- Frame frame = new Frame();
- //组件--按钮
- Button button = new Button("my");
- Button button2 = new Button("sister");
- Button button3 = new Button("beautiful");
- //设置为流式布局
- // frame.setLayout(new FlowLayout());//默认居中
- // frame.setLayout(new FlowLayout(FlowLayout.LEFT));
- frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
- frame.setSize(222,222);
- //把按钮加上去
- frame.add(button);
- frame.add(button2);
- frame.add(button3);
- frame.setVisible(true);
- }
- }
- package com.yl;
-
- import java.awt.*;
-
- public class TestBodyLayout {
- public static void main(String[] args) {
- Frame frame = new Frame("TestBodyLayout");
- Button east = new Button("East");
- Button west = new Button("West");
- Button south = new Button("South");
- Button north = new Button("North");
- Button center = new Button("Center");
- frame.setSize(666, 666);
- frame.setVisible(true);
- frame.add(east, BorderLayout.EAST);
- frame.add(west, BorderLayout.WEST);
- frame.add(south, BorderLayout.SOUTH);
- frame.add(north, BorderLayout.NORTH);
- frame.add(center, BorderLayout.CENTER);
- }
- }
- package com.yl;
-
- import java.awt.*;
-
- public class TestGrid {
- public static void main(String[] args) {
- Frame frame = new Frame();
- Button button1 = new Button("1");
- Button button2 = new Button("2");
- Button button3 = new Button("3");
- Button button4 = new Button("4");
- Button button5 = new Button("5");
- Button button6 = new Button("6");
- frame.setLayout(new GridLayout(3,2));
- frame.add(button1);
- frame.add(button2);
- frame.add(button3);
- frame.add(button4);
- frame.add(button5);
- frame.add(button6);
- frame.pack();//自动填充,不用setsize
- frame.setVisible(true);
- }
- }

练习

- package com.yl;
-
- import java.awt.*;
-
- public class Test {
- public static void main(String[] args) {
- Frame frame = new Frame();
- Panel east11 = new Panel();
- Panel center12 = new Panel();
- Panel center11 = new Panel();
- Panel center22 = new Panel();
- Panel west11 = new Panel();
- Button east = new Button("East");
- Button east2 = new Button("East");
- east11.setBackground(Color.red);
- east11.setLayout(new GridLayout(2,1));
- east11.add(east);
- east11.add(east2);
- Button west = new Button("West");
- Button west2 = new Button("West");
- west11.setBackground(Color.green);
- west11.setLayout(new GridLayout(2,1));
- west11.add(west);
- west11.add(west2);
- Button center1 = new Button("Center");
- Button center2 = new Button("Center");
- Button center3 = new Button("Center");
- Button center4 = new Button("Center");
- Button center5 = new Button("Center");
- Button center6 = new Button("Center");
- center12.setLayout(new GridLayout(2,1));
- center12.add(center11);
- center11.setLayout(new GridLayout(2,1));
- center11.add(center1);
- center11.add(center2);
- center12.add(center22);
- center22.setLayout(new GridLayout(2,2));
- center22.add(center3);
- center22.add(center4);
- center22.add(center5);
- center22.add(center6);
- frame.setLayout(new GridLayout(1,3));
- frame.add(east11);
- frame.add(center12);
- frame.add(west11);
- frame.pack();
- frame.setVisible(true);
- frame.addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- System.exit(0);
- }
- });
- }
- }
- package com.yl;
-
- import java.awt.*;
-
- public class Test1 {
- public static void main(String[] args) {
- Frame frame = new Frame();
- frame.setLayout(new GridLayout(2,1));
- frame.setSize(666,666);
- frame.setLocation(222,222);
- frame.setVisible(true);
- frame.setLayout(new GridLayout(2,1));
- Panel p1 = new Panel(new BorderLayout());
- Panel p2 = new Panel(new GridLayout(2,1));
- Panel p3 = new Panel(new BorderLayout());
- Panel p4 = new Panel(new GridLayout(2,2));
- p1.add(new Button("east1"),BorderLayout.EAST);
- p1.ad