上课没认真听,下课不好好写。

关于GUI,首先了解了一下什么是GUI:

GUI(Graphical User Interface),图形用户界面。采用图形方式显示的计算机操作用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更容易接受。GUI和CLI(命令行界面)最大的不同是,GUI引入鼠标作为输入源(后期又以触屏为输入),这使得GUI的交互成为可能。

其次了解,图形化界面GUI实现的几个重要组件

1.JFrame 是容器类

Java的GUI程序的基本思路是以JFrame为基础,他是屏幕上windows的对象,能够最大化,最小化,关闭。

JFrame是一个顶层的框架类,好比一个窗户的框子,这个框子可以嵌入多个玻璃窗

1、构造窗体对象

2、设置窗体外观属性

3、设置窗体可见

对JFrame添加组件有两种方式:

1、用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)
2、建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板

JPanel  contentPane=new  JPanel();//把其它组件添加到Jpanel中;
frame.setContentPane(contentPane);//把contentPane对象设置成为frame的内容面板

常用方法

void add(Component):添加组件。
void add(Component,int):添加组件至索引指定位置。
void add(Component,Object):按照指定布局限制添加组件。
void add(Component,Object,int):按照指定布局管理器限制添加组件到指定位置。
void remove(Component):移除组件。
void remove(int):移除指定位置的组件。
void removeAll():移除所有组件。
void paintComponent(Graphics):绘制组件。``
void repaint():重新绘制。
void setPreferredSize(Dimension):设置组件尺寸。
Dimension getPreferredSize():获取最佳尺寸。

2.AWT 是抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包。

AWT是用来处理图形最基本的方式,AWT包提供:

1、图形界面组件:窗口,按钮,菜单等

2、容器:实现组件管理,布局管理

3、布局管理器:用来安排图形界面组件的位置

4、Graphics:在组件上进行图像绘制所使用的图形环境的父类

事件处理对象:用来处理图形界面组件所触发的事件

//引入AWT包中的所有类
import java.awt.*;

3.Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。

AWT的起初设想就是为了统一实现不同操作系统的图像界面,但问题是,不同操作系统图形库的功能可能不一样,在一个平台上存在的功能在另外一个平台上则可能不存在,为此AWT不得不通过牺牲功能来实现平台无关性。

不仅如此,AWT还是一个重量级组件,使用比较麻烦,且设计出的图形界面不够美观功能也非常有限。为此,Sun公司对AWT进行改进,提出了Swing组件,提供了更加丰富的组件和功能,来满足GUI设计的一切需求。

Swing是JAVA基础类的一部分,包括了图形用户器件:文本框、按钮、分割窗格、表。需要注意的是,Swing并不是AWT的替代品,而是在原有的AWT的基础上进行了补充和改进。

三者之间的关系

JFrame、AWT(Abstract Window Toolkit)和Swing都是与Java图形用户界面(GUI)编程相关的概念和工具。

  1. AWT(Abstract Window Toolkit)

    • AWT是Java最早的GUI工具包,提供了一组与平台相关的类,用于创建和管理GUI组件,如窗口、按钮、文本框等。
    • AWT的组件是对底层操作系统窗口的简单封装,因此它们的外观和感觉取决于底层操作系统。
  2. Swing

    • Swing是在AWT之上构建的一套GUI工具包,提供了更丰富、更灵活、更独立于平台的组件。
    • Swing组件是由Java代码实现的,而不是直接使用底层操作系统的GUI组件。这使得Swing应用程序在不同平台上具有更一致的外观和感觉。
  3. JFrame

    • JFrame是Swing库中的一个类,它是一个顶级容器,用于创建窗口。
    • JFrame继承自AWT的Frame类,但它提供了更多的功能和更丰富的选项,使得窗口的创建和管理变得更加灵活和方便。

在关系上:

  • AWT是Java的最初的GUI工具包,提供了一些基本的GUI组件。
  • Swing是建立在AWT之上的,提供了更丰富和独立于平台的GUI组件。
  • JFrame是Swing库中用于创建窗口的一个类,它扩展了AWT的Frame类。因此,JFrame可以看作是Swing中用于创建窗口的一种工具。

GUI界面实现小学生口算题卡功能(一)| 简要了解GUI的更多相关文章

  1. Python_小学口算题库生成器

    import random import os import tkinter import tkinter.ttk from docx import Document columnsNumber = ...

  2. 洛谷 P1957 口算练习题

    洛谷 P1957 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效 ...

  3. 《口算大作战 2》DLC:算法真奇妙

    211614331 王诚荣 211614354 陈斌 --第一次结对作业 DLC DLC:三年级混合运算模块现已更新!现在您可以愉快的使用三年级题库啦.同时您必须拥有本体才能使用此DLC 单击此处查看 ...

  4. matlab GUI界面编程总结

    去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...

  5. Matlab GUI界面

    做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     ...

  6. C# WinForm动态控件实例:口算训练

    昨天晚上回寝室看到室友正在被一个C#课的作业苦恼,作业的内容是编写一个口算训练程序,能够实现随意添加题目数量.于是,喜欢写C#的我就决定解救一下他们. 创建动态控件 既然要动态添加,那就必须使用动态控 ...

  7. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星云 ...

  8. 用Python开发小学二年级口算自动出题程序

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 武汉光谷一小二年级要求家长每天要给小孩出口算题目,让孩子练习. 根据老师出题要求编写了Python程序 ...

  9. MATLAB(3)——GUI界面设计入门

    作者:桂. 时间:2017-03-01  18:43:35 链接:http://www.cnblogs.com/xingshansi/articles/6485688.html 声明:转载请注明出处, ...

  10. 小学生轻松做题App

    作业链接:https://edu.cnblogs.com/campus/fzzcxy/2016SE/homework/2180 原型模型设计工具:墨刀 原型模型链接:https://modao.cc/ ...

随机推荐

  1. Cilium系列-12-启用 Pod 的 BBR 拥塞控制

    系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, ...

  2. XAML格式化工具:XAML Styler

    XAML格式化的意义 在开发WPF应用过程中,编写XAML时需要手动去缩进或者换行,随着时间的推移或者参与开发的人增多,XAML文件内容的格式会越来越乱.要么属性全都写在一行,内容太宽一屏无法完整展现 ...

  3. Docker Dockerfile指令大全

    FROM-指定基础镜像 指定基础镜像,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令. # 语法格式 FROM < ...

  4. docker 搭建php环境(踩坑经验!!)

    本次安装的推荐配置: nginx 1.24.0 mysql 5.7.43 php 7.4.3-fpm redis 7.2.0   一.安装虚拟机 vm虚拟机需要4g内存,网络使用nat模式设置静态ip ...

  5. Linux 内核 ASoC DMA 引擎驱动程序

    Linux 内核 ASoC 框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括 Codec 类驱动程序.平台类驱动程序和机器类驱动程序.在实现上,机器类驱动程序用 struct snd ...

  6. CentOS 内网YUM源配置使用

    YUM介绍 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的开发者 ...

  7. 论文精读:带有源标签自适应的半监督域适应(Semi-Supervised Domain Adaptation with Source Label Adaptation)

    Semi-Supervised Domain Adaptation with Source Label Adaptation 具有源标签适应的半监督域适应 原文链接 Abstract 文章指出当前的半 ...

  8. linux shell根据关键字用sed注释掉整行

    一.将带有ab的行注释掉 # cat test # sed -i '/ab/s/^\(.*\)$/#\1/g' test ab是关键字 s是语法替换 ^是行首 $是行尾 \是转义符 数字1带表前述匹配 ...

  9. 【ChatGPT-应用篇】基于chatGPT覆盖测试过程的初步探索

    1.前言 22年底ChatGPT就已风靡行业内外,简单来说,它是基于自然语言生成式 AI 模型,打造的一款聊天机器人.是 OpenAI 于 11 月 30 日推出的最新作品,供公众免费测试.他可以根据 ...

  10. SpringCloud搭建保姆级教程

    一.搭建服务注册与发现中⼼ 使⽤Spring Cloud Netflix 中的 Eureka 搭建服务注册与发现中⼼ 1.创建SpringBoot应用添加依赖 1.spring web 2.eurek ...