AWT

AWT

1 AWT介绍

  1. 包含很多类和接口!GUI!
  2. 元素:窗口,按钮,文本框
  3. 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);
            }
        });

    }
}
posted on 2022-05-04 17:14  松下的蘑菇  阅读(234)  评论(0)    收藏  举报