GUI(java)

本文介绍了GUI的基本概念、组件如窗口和按钮的应用,探讨了AWT和Swing的区别,展示了如何创建基本窗口,并重点讲解了事件处理和内部类在GUI开发中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GUI基本介绍:

1.GUI是什么?

  GUI的全称为Graphical User Interface,图形化界面或图形用户接口,是指采用图形方式显示
的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简
便易用。GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用人
们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操
作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移
植、可配置等特点。
2.GUI被淘汰的原因:界面不够美观,需要jre环境。

3.GUI的基本组件:窗口、弹窗、面板、文本框、列表框、按钮、图片、交互组件、监听事件、鼠

标事件、键盘事件。

4.GUI的核心:AWT和Swing。

 2.AWT

1.AWT介绍:AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供了对应的java类,这些类都位于java.awt包中。

2.组件和容器: Component类通常被称为组件,根据Component的不同作用,可将其分为基本组件类和容器类。基本组件类是诸如按钮、文本框之类的图形界面元素,而容器类则是通过Component的子类Contaier类表示容器,它是一种特殊的组件,可以用来容纳其他组件。wing

3.SWing

1.Swing介绍:

  • Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。
  • Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。
  • Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。
  • 为了和 AWT 组件区分,Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。

2.Swing的常用容器

组件描述
JFrame一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)
JDialog对话框
JPanel一般轻量级面板容器组件
JScrollPane带滚动条的,可以水平和处置的面板组件
JSplitPane分隔面板
JTabbedPane选项卡面板
JLayeredPane层级面板
JMenuBar菜单栏
JToolBar工具栏
JPopupMenu弹出菜单
JInternalFrame内部窗口
JLabel标签
JButton按钮
JRadioButton单选按钮
JCheckBox复选框
JToggleButton开关按钮
JTextFiled文本框
JPasswordFiled密码框
JTextArea多行文本域
JComboBox下拉列表框
JList列表
JProgressBar进度条
JSlider滑块

4.布局管理器

布局管理器分为3种:

1.流式布局(FlowLayout):按组件加入的顺序,按水平方向排列,排满一行换下一行继续排列。

2.东西南北中布局(BorderLayout):边界布局,将Container按方位分为5个区域(东西南北中),每个区域放置一个组件

3.表格布局(GridLayout):把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。

 我的第一个GUI窗口:

public class Demo2Frame {
    public static void main(String[] args) {
        MyFrame myFrame1=new MyFrame(100,100,200,200,Color.BLUE);
        MyFrame myFrame2=new MyFrame(300,100,200,200,Color.green);
        MyFrame myFrame3=new MyFrame(100,300,200,200,Color.red);
        MyFrame myFrame4=new MyFrame(300,300,200,200,Color.PINK);


    }
    static class MyFrame extends Frame{//内部类
        static int id =0;
        public MyFrame(int x,int y,int w,int h,Color color){
            super("MyFrame"+(++id));//调用父类方法
            setBounds(x,y,w,h);
            setBackground(color);
            setVisible(true);
        }

    }

 5.事件处理

对于采用了图形用户界面的程序来说,事件控制是非常重要的;到目前为止,我们编写的图形用户界面程序都仅仅只是完成了界面,而没有任何实际的功能,要实现相应的功能,必须进行事件处理;

用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输 入一个字符、点击鼠标等等;

当前我们要关注的并不是“事件是如何产生的”,而是讨论当发生事件后,我们应当“如何处理”。

Java中,事件处理的基本思路如下:

一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里, 监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;

一个事件源必须注册监听器以便监听器可以接受关于一个特定事件的通知。

jButton.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                System.out.println("");
//            }

事件处理大同小异,我们就不一一介绍了

6.内部类

1.内部类的组成:

  • 成员内部类
  • 静态内部类
  • 局部内部类
  • 匿名内部类

 2.内部类的意义:

  • 封装性
  • 实现多继承

 GUI的搭建就和搭积木一样,只有把底层搭好,一步一步的向顶层进行搭建!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃橘子的Crow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值