一、Frame

  1. package GUI;
  2. import java.awt.*;
  3. import java.awt.event.WindowAdapter;
  4. import java.awt.event.WindowEvent;
  5. /**
  6. * @Auther: 小雷学长
  7. * @Date: 2022/3/12 - 10:55
  8. * @Version: 1.8
  9. */
  10. public class TestFrame {
  11. public static void main(String[] args) {
  12. //新建一个窗口
  13. Frame frame = new Frame("管理系统");
  14. //需要设置可见性
  15. frame.setVisible(true);
  16. //设置窗口大小
  17. frame.setSize(400, 400);
  18. //设置背景颜色
  19. frame.setBackground(new Color(1, 55, 10));
  20. //弹出的初始位置
  21. frame.setLocation(200,200);
  22. //设置大小固定,无法改变大小
  23. frame.setResizable(true);
  24. frame.addWindowListener(new WindowAdapter() {
  25. @Override
  26. public void windowClosing(WindowEvent e) {
  27. System.exit(0);
  28. }
  29. });
  30. }
  31. }

image.png

  1. package GUI;
  2. import java.awt.*;
  3. /**
  4. * @Auther: 小雷学长
  5. * @Date: 2022/3/12 - 11:08
  6. * @Version: 1.8
  7. */
  8. public class TestFrame2 {
  9. public static void main(String[] args) {
  10. //展示多个窗口
  11. new MyFrame(100,100,200,200,Color.GREEN);
  12. new MyFrame(300,100,200,200,Color.GREEN);
  13. new MyFrame(500,100,200,200,Color.GREEN);
  14. new MyFrame(700,100,200,200,Color.GREEN);
  15. }
  16. }
  17. class MyFrame extends Frame {
  18. //可能存在多个窗口,需要一个计数器
  19. static int id = 0;
  20. public MyFrame(int x, int y,int w,int h,Color color) {
  21. super("MyFrame"+(++id));
  22. setBounds(x,y,w,h);
  23. setVisible(true);
  24. setBackground(color);
  25. }
  26. }

image.png

二、面板Panel

  • panel不能单独存在,可以看成是一个空间,需要放在Frame上 ```java package GUI;

import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener;

/**

  • @Auther: 小雷学长
  • @Date: 2022/3/12 - 11:37
  • @Version: 1.8 */ public class TestPanel { public static void main(String[] args) {

    1. Frame frame = new Frame();
    2. //布局的概念
    3. Panel panel = new Panel();
    4. //需要设置可见性
    5. frame.setVisible(true);
    6. //设置布局
    7. frame.setLayout(null);
    8. //坐标
    9. frame.setBounds(300,300,400,400);
    10. frame.setBackground(new Color(193,3,4));
    11. //panel设置坐标,相对于frame
    12. panel.setBounds(30,40,400,500);
    13. panel.setBackground(new Color(40,61,35));
    14. //frame.add(panel)
    15. frame.add(panel);
    16. //监听事件,监听窗口关闭事件,system.exit(0)
    17. /* frame.addWindowListener(new WindowListener() {
    18. @Override
    19. public void windowOpened(WindowEvent e) {
    20. }
    21. @Override
    22. public void windowClosing(WindowEvent e) {
    23. }
    24. @Override
    25. public void windowClosed(WindowEvent e) {
    26. }
    27. @Override
    28. public void windowIconified(WindowEvent e) {
    29. }
    30. @Override
    31. public void windowDeiconified(WindowEvent e) {
    32. }
    33. @Override
    34. public void windowActivated(WindowEvent e) {
    35. }
    36. @Override
    37. public void windowDeactivated(WindowEvent e) {
    38. }
    39. });*/
    40. //监听事件,监听窗口关闭事件,system.exit(0)
    41. //适配器模式
    42. frame.addWindowListener(new WindowAdapter() {
    43. //窗口点击关闭时要做的事情
    44. @Override
    45. public void windowClosing(WindowEvent e) {
    46. System.exit(0);
    47. }
    48. });

    } }

``` image.png