• GUI编程学习


    1、简介

    Gui的核心技术:Swing、AWT

    2、AWT

    包含了很多类和接口!GUI:图形用户界面编程

    元素:创空、按钮、文本框

    Frame

    单个窗口

    1. package com.yl;
    2. import java.awt.*;
    3. public class TestFrame {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame("我妹最漂亮");
    6. //设置可见性
    7. frame.setVisible(true);
    8. //设置窗口大小
    9. frame.setSize(666,222);
    10. //设置背景颜色
    11. frame.setBackground(new Color(191, 183, 27));
    12. //设置弹出的初始位置
    13. frame.setLocation(222,222);
    14. //设置大小固定
    15. frame.setResizable(false);
    16. }
    17. }

      

    停止java运行才可以关闭窗口

     多个窗口

    1. package com.yl;
    2. import java.awt.*;
    3. public class TestFrame2 {
    4. public static void main(String[] args) {
    5. MyFrame frame = new MyFrame(100, 100, 500, 500, Color.yellow);
    6. MyFrame frame2 = new MyFrame(150, 150, 500, 500, Color.red);
    7. MyFrame frame3 = new MyFrame(200, 200, 500, 500, Color.pink);
    8. MyFrame frame4 = new MyFrame(250, 250, 500, 500, Color.orange);
    9. }
    10. }
    11. class MyFrame extends Frame{
    12. static int id=0;//可能存在多个窗口我们需要一个计数器
    13. public MyFrame(int x,int y,int w,int h,Color color){
    14. super("Myframe+"+(++id));
    15. setBackground(color);
    16. setBounds(x,y,w,h);
    17. setVisible(true);
    18. }
    19. }

     

    Panel

    解决关闭窗口问题

    1. package com.yl;
    2. import java.awt.*;
    3. import java.awt.event.WindowAdapter;
    4. import java.awt.event.WindowEvent;
    5. //Panel可以看成是一个空间,但是不能单独存在
    6. public class TestPanel {
    7. public static void main(String[] args) {
    8. Frame frame = new Frame();
    9. //布局的概念
    10. Panel panel = new Panel();
    11. //设置布局
    12. frame.setLayout(null);
    13. //坐标
    14. frame.setBounds(300,300,500,500);
    15. frame.setBackground(new Color(203, 243, 29, 255));
    16. //Panel设置坐标,相对于frame
    17. panel.setBounds(50,50,400,400);
    18. panel.setBackground(new Color(207, 25, 25));
    19. //frame.add(panel) Container extends Component, Panel extends Container
    20. frame.add(panel);
    21. frame.setVisible(true);//设置可见性
    22. //监听窗口关闭时间
    23. frame.addWindowListener(new WindowAdapter() {
    24. //结束程序
    25. @Override
    26. public void windowClosing(WindowEvent e) {
    27. System.exit(0);
    28. }
    29. });
    30. }
    31. }

    3、布局管理器

    •  流式布局
    1. package com.yl;
    2. import java.awt.*;
    3. public class TestLowLayout {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame();
    6. //组件--按钮
    7. Button button = new Button("my");
    8. Button button2 = new Button("sister");
    9. Button button3 = new Button("beautiful");
    10. //设置为流式布局
    11. // frame.setLayout(new FlowLayout());//默认居中
    12. // frame.setLayout(new FlowLayout(FlowLayout.LEFT));
    13. frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
    14. frame.setSize(222,222);
    15. //把按钮加上去
    16. frame.add(button);
    17. frame.add(button2);
    18. frame.add(button3);
    19. frame.setVisible(true);
    20. }
    21. }

      

    • 东西南北中
    1. package com.yl;
    2. import java.awt.*;
    3. public class TestBodyLayout {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame("TestBodyLayout");
    6. Button east = new Button("East");
    7. Button west = new Button("West");
    8. Button south = new Button("South");
    9. Button north = new Button("North");
    10. Button center = new Button("Center");
    11. frame.setSize(666, 666);
    12. frame.setVisible(true);
    13. frame.add(east, BorderLayout.EAST);
    14. frame.add(west, BorderLayout.WEST);
    15. frame.add(south, BorderLayout.SOUTH);
    16. frame.add(north, BorderLayout.NORTH);
    17. frame.add(center, BorderLayout.CENTER);
    18. }
    19. }

      

    • 表格布局
    1. package com.yl;
    2. import java.awt.*;
    3. public class TestGrid {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame();
    6. Button button1 = new Button("1");
    7. Button button2 = new Button("2");
    8. Button button3 = new Button("3");
    9. Button button4 = new Button("4");
    10. Button button5 = new Button("5");
    11. Button button6 = new Button("6");
    12. frame.setLayout(new GridLayout(3,2));
    13. frame.add(button1);
    14. frame.add(button2);
    15. frame.add(button3);
    16. frame.add(button4);
    17. frame.add(button5);
    18. frame.add(button6);
    19. frame.pack();//自动填充,不用setsize
    20. frame.setVisible(true);
    21. }
    22. }

     

    练习

     

    1. package com.yl;
    2. import java.awt.*;
    3. public class Test {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame();
    6. Panel east11 = new Panel();
    7. Panel center12 = new Panel();
    8. Panel center11 = new Panel();
    9. Panel center22 = new Panel();
    10. Panel west11 = new Panel();
    11. Button east = new Button("East");
    12. Button east2 = new Button("East");
    13. east11.setBackground(Color.red);
    14. east11.setLayout(new GridLayout(2,1));
    15. east11.add(east);
    16. east11.add(east2);
    17. Button west = new Button("West");
    18. Button west2 = new Button("West");
    19. west11.setBackground(Color.green);
    20. west11.setLayout(new GridLayout(2,1));
    21. west11.add(west);
    22. west11.add(west2);
    23. Button center1 = new Button("Center");
    24. Button center2 = new Button("Center");
    25. Button center3 = new Button("Center");
    26. Button center4 = new Button("Center");
    27. Button center5 = new Button("Center");
    28. Button center6 = new Button("Center");
    29. center12.setLayout(new GridLayout(2,1));
    30. center12.add(center11);
    31. center11.setLayout(new GridLayout(2,1));
    32. center11.add(center1);
    33. center11.add(center2);
    34. center12.add(center22);
    35. center22.setLayout(new GridLayout(2,2));
    36. center22.add(center3);
    37. center22.add(center4);
    38. center22.add(center5);
    39. center22.add(center6);
    40. frame.setLayout(new GridLayout(1,3));
    41. frame.add(east11);
    42. frame.add(center12);
    43. frame.add(west11);
    44. frame.pack();
    45. frame.setVisible(true);
    46. frame.addWindowListener(new WindowAdapter() {
    47. @Override
    48. public void windowClosing(WindowEvent e) {
    49. System.exit(0);
    50. }
    51. });
    52. }
    53. }

      

    1. package com.yl;
    2. import java.awt.*;
    3. public class Test1 {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame();
    6. frame.setLayout(new GridLayout(2,1));
    7. frame.setSize(666,666);
    8. frame.setLocation(222,222);
    9. frame.setVisible(true);
    10. frame.setLayout(new GridLayout(2,1));
    11. Panel p1 = new Panel(new BorderLayout());
    12. Panel p2 = new Panel(new GridLayout(2,1));
    13. Panel p3 = new Panel(new BorderLayout());
    14. Panel p4 = new Panel(new GridLayout(2,2));
    15. p1.add(new Button("east1"),BorderLayout.EAST);
    16. p1.ad
  • 相关阅读:
    ubuntu根目录清理
    洛谷 P6175 无向图的最小环问题(Floyd 算法求最小环)
    小白转行入门STM32----手机蓝牙控制STM32单片机点亮LED
    MySQL JSON 数组用于 WHERE IN 子句
    三种方式使用纯 CSS 实现星级评分
    水儿的绘画——dfs连通块+暴力枚举
    跨境电商如何搭建独立站?
    共码未来 | 2022 Google 谷歌开发者大会参会现场记
    python数学建模--sympy三维图像绘制
    获取文章分类详情
  • 原文地址:https://blog.csdn.net/m0_56809927/article/details/123901233