首页 > 其他分享 >GUI界面实现小学生口算题卡功能(一)| 简要了解GUI

GUI界面实现小学生口算题卡功能(一)| 简要了解GUI

时间:2023-11-16 15:48:06浏览次数:33  
标签:简要 GUI AWT JFrame Swing 组件 void 算题

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

关于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,AWT,JFrame,Swing,组件,void,算题
From: https://www.cnblogs.com/gbrr/p/17836408.html

相关文章

  • 第6章 Qt GUI--界面编程基础
    QtGUI--界面编程基础认识设计师界面--每个窗口的功能及用法在UI设计师界面设计的属性会被QTwidget设计在这里面拖动拖放试试看属性是根据基础的父类从上到下排序的编辑和信号槽模式核心--信号槽的理解与应用(这里比较粗糙)QT和其他GUI框架最大的区别红灯是......
  • Oracle多租户系列--多租户简要概述
    简要概述Oracle12cRelease1(12.1)引入了多租户选项,是Oracle数据库历史上最大的架构变化之一,引入了容器数据库(CDB)和可插拔数据库(PDB)的概念。容器数据库(CDB):从表面上看,它与传统的Oracle数据库非常相似,因为它包含了大部分您已经熟悉的工作部分(控制文件、数据文件、undo、te......
  • 【Unity UGUI】UGUI适配
    1/*=================================================2*FileName:SafeAreaPanel.cs3*Author:None4*UnityVersion:2021.3.20f15*Date:2023-07-2016:116*Description:UI适配组件7*History:8*---------......
  • Google Guice 用户指南 - Ⅱ:愿景
    译者:kefate原文:https://github.com/google/guice/wiki/Motivation将所有组件连接在一起是应用程序开发中繁琐的一部分。有多种方法可以将数据、服务和表示层类连接在一起。为了对比这些方法,我们将编写一个披萨订购网站的计费代码:publicinterfaceBillingService{/**......
  • Python的GUI图形界面工具大全
     来源:http://www.shanhubei.com/archives/2833.html总结了一下Python下的图形界面GUI工具,暂时能找到的资料就这么多,后续会补充推荐学习资料。图形界面的定义图形界面图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界......
  • fgui 怎么将"UI空间下的世界坐标"转换成"fgui空间下的世界坐标( global pos )" cocosc
    嗨~如果本文对你有帮助,点个推荐吧!这样能让文章在搜索中更靠前,帮助到更多有需要的人!首先通过坐标系转换一步步地进行计算我尝试过,但卡在了将屏幕坐标转换为fgui空间的全局坐标上。但发现了一个巧妙的做法。//随便的一个Cocoscreator的NodevaranyCCUINode=this._labe......
  • 使用反编译软件jd-gui.exe,打开提示:The application requires a Java Runtime Enviro
      jd-gui.exe,打开提示:TheapplicationrequiresaJavaRuntimeEnvironment1.8.0 但是已经是java1.8版本了 这时候修改注册表win+R输入regedit打开注册表找到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JavaRuntimeEnvironment\1.8如果 JavaRuntimeEnvironment......
  • 【GUI软件开发】小红书评论采集:自动采集1w多条,含二级评论!
    目录一、爬取目标1.1效果截图1.2演示视频1.3软件说明二、代码讲解2.1爬虫采集模块2.2软件界面模块2.3日志模块三、获取源码及软件一、爬取目标您好!我是@马哥python说,一名10年程序猿。我用python开发了一个爬虫采集软件,可自动抓取小红书评论数据,并且含二级评论数据。为......
  • A2OJ Ladder 21 简要题解
    https://earthshakira.github.io/a2oj-clientside/server/Ladder21.html只记录Difficultylevel>=8的。有很多题是口胡的。写了的会标注提交记录。还有些很久以前写过的题就懒得搬提交记录了。71.CF444EDZYlovesplanting我们二分答案,然后可以这样转化:把权\(\ged\)的......
  • m基于Yolov2和GoogleNet深度学习网络的疲劳驾驶检测系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  疲劳状态:    2.算法涉及理论知识概要      疲劳驾驶检测系统是一种基于深度学习网络的系统,它结合了Yolov2和GoogleNet模型,用于检测驾驶员的疲劳状态和人脸。疲劳驾驶检测系统主要包括两个部分:人脸检测和疲劳......