黑马程序员_GUI概述

告别纯代码:用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件 本文介绍如何利用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件,解决传统集成方式中的代码臃肿和维护困难问题。通过.NET控件封装核心功能,实现LabVIEW与VisionMaster的高效对接,显著提升工业自动化开发效率。 阅读详情

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

GUI概述

一、GUI概述

GUI,Graphical UserInterface,图形用户接口。用图形的方法,来显示计算机界面,这样更方便更直观。

之前我们有再使用dos命令行,那是在图形化界面之前,我们需要记得好多命令,这样比较麻烦,操作不直观。有图形化界面之后,操作起来就比较直观,因为可以直接看到图形化的操作块儿,减少了大量的记忆时间。

java给图形界面的包主要有两个:java.Awt和java.Swing。

java.Awt:Abstract WindowTookit(抽象窗口工具包),需要调用本地系统方法实现功能,较为依赖本地系统,属于重量级空间。

java.Swing:在AWT基础上,建立了一套图形见面系统,在其中提供了更多的组件,而且完全又java实现,增强了移植性,数轻量级控件。它的跨平台特别强。

看一下GUI的体系结构:

 

 

 

container:为容器,是一个特殊组件该组件可以通过add方法添加其他组件进来。

 

二、布局管理

布局管理,就是容器中的组件排放方式。常见的布局管理器:

FlowLayout,流式布局管理器,从左到右排序。Panel默认的布局管理器。每一行都是居中的。一行放不满就到第二行,也最先放到中间。

BorderLayout,边界布局管理器,东南西北中。Frame默认布局管理器。组件会靠近边界,如果不指定方位,这个组件就会充满整个窗口。

GridLayout,网格布局管理器,规则矩阵。把组件都存放到网格中。

GardLayout,卡片布局管理器,选项卡

GridBagLayout,网格包布局管理器,非规则的矩阵。

三、创建图形化界面的基本步骤

1、创建Frame窗体,属于Container容器的实现子类

Frame f = newFrame(“我的AWT”);

2、对窗体进行基本设置

         整体布局:f.setLayout(布局管理器对象);

         窗体的大小:f.setSize(intx , int y);这里x一般是横坐标大小,y是纵坐标大小

         窗体的位置:f.setLocation(intx , int y);x和y窗口左上角距离屏幕左上角的横坐标和纵坐标。

3、定义组件

         比如定义一个按钮Buttonb = new Button(String str);

4、将组件通过add方法添加到窗体中

         f.add(b);

5、让窗体显示,通过setVisiable(true)

         f.setVisiable(true);因为建立窗体最初是隐式的,只有设置可见的,才可以使窗体显示出来。

 

 

 

四、要点,事件监听机制

事件监听机制,个人理解来说,就像是因为某个事情的发生,导致触发了另一个事情。举两个例子,一是消防警报装置,消防警报装置会检测房屋里温度,一旦有火灾发生,温度变高,就会触发这个报警装置,然后消防车就会来。二是,像小说里讲的机关,当踩到一块砖,这块砖被踩下后就会触发机关,这机关就会动作,打开一扇门。

就是说,事件监听就是一个监听A,监听某个动作比如温度,这个A中还有对这个事件的处理方法;事件源B就是,就是被监听的事件,比如温度升高;外部动作C,能引发被监听事件方生,比如火灾会引起温度升高;温度升高就会产生一个对象D,这个D就告诉监听A你监听的动作发生了,这时A就会启动对这个事件的处理动作。

看图例:

 

 

 

 

从上图可以看出事件监听机制的特点:

1、事件源

2、事件

3、监听器

4、事件处理

在java中:

事件源就是awt包或者swing包中的那些图形界面组件。

事件:每一个事件源都有自己持有对应事件和共性事件。

监听器:将可以出发某一个事件的动作(不只一个动作)都已经封装到了监听器中

以上三者在java中定义好了,直接获取其对象就可以。我们要做的事情,就是对产生的动作进行处理,就是对监听器监听到的动作进行处理。

 

 

窗体事件监听

我们在Frame的父类Window中,发现一个方法时addWindowListener(WindowListenerl),直接用窗体对象调用即可。但是里面接收的是一个WindowListener对象。但查看这个对象,发现这是一个接口,里面有七个方法,这样我们实现的话需要把所有方法都复写,所以接着看其子类,有一个子类是WindowAdapter,这里面的把WindowListener的对象全部都复写了,但是方法为空,而且是一个抽象类。这样我们就可继承这个类,我们就可以复写其中我们需要的方法。程序为:

class MyWin extends WindowAdapter {

         //覆盖其中一个方法

         public voidwindowClosing(){

         //对这个事件的处理方法

                   System.exit(0);

}

}

这样我们就在窗口监听器中传入这个对象:

f.addWindowListener( new Mywin() ); 

这样,当我们操作窗口中的关闭标签时,就会是程序退出,也就是关闭了窗口。因为这里对象时继承了WindowAdapter,所以可以用匿名内部类来实现。

f.addWindowListener(new WindowAdpter(){

         public voidwindowListener(WindowEvent e){

         System.exit(0);

}

});

还有其他方法,对窗口动作的监听,对窗口打开监听。覆盖我们需要的方法即可。

 

 

 

对按钮动作的监听

按钮就是事件源,那么选择哪个监听器呢?通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器,需要查看该组件对象的功能。通过查阅,发现按钮支持一个特有监听器addActionListener。具体操作步骤和上面窗口监听是一致的。

// 加入按钮动作监听

button.addActionListener(new ActionListener(){

         // 复写actionPerformed方法,接口ActionListener中只有一个抽象方法

         public voidactionPerformed(ActionEvent e){

         System.exit(0);

}

});

这个程序就是建立了一个按钮监听机制,当按动按钮时,就会推出程序。

 

对鼠标和键盘事件的监听

鼠标和键盘基本上所有地方都要用到,所以这个监听器应该是定义在Component中,会发现MouseListener这个监听器,这个接口中有五个方法,所以一定有适配器,就找到MouseAdapter这个子类,我们在按钮上加上这个监听,那么使用方法还是一样:

button.addMouseListener( new MouseAdapter(){

         public voidmouseEntered(MouseEvent e){

                   System.out.println(“鼠标进入”);

}

});

鼠标事件中,MouseEvent中包含方法和鼠标具体事件,如获取鼠标点击次数等等。

添加键盘监听

button.addKeyListener(new KeyAdapter(){

         public voidkeyPressed(KeyEvent e){

                   System.out.println(e.getChar());

}

});

同样,在键盘中有各种字段,就是键盘动作,如按某个键,返回某个按键的字符等等。在keyEvent中,注意一个方法,consume()这个方法不会按照默认的方法来处理此事件,就是说,原来时怎么样默认动作的,现在就不会进行这样的动作了。

 

 

                对话框Dialog和FileDialog

                Dialog是基于一个Frame窗口的,所以其构造函数接收一个Frame对象,同时接收一个字符串和一个boolean值:

                Dialog  d = new Dialog(Frame f , String s , mode);

其中,mode是两个值true和false。true时,当对话框弹出,对话框基于的窗口就不能操作,必须操作当前弹出的对话框。false时,可以操作对话框基于的窗口。

                因为Dialog也是窗口,所以可以在其中加入按钮,便签等组件。有一点注意的是,当弹出对话框后,我们必须对对话框中的事件进行监听,这里操作关闭对话框的时候,不要使用System.exit(0)这个方法,是对话框隐藏即可,即setVisiable(false)。

 

 

 

 

ADS许可证配置全攻略:从破解文件放置到环境变量设置(实测有效版) 本文详细介绍了ADS许可证配置的全流程,包括环境准备、全新安装、破解文件部署和环境变量设置等关键步骤。针对常见的安装和授权问题,提供了实测有效的解决方案,帮助工程师快速完成ADS的配置与优化。 阅读详情

相关推荐

FreeRTOS:卡在configASSERT( ( pxQueue ) )问题的解决

FreeRTOS卡在configASSERT( ( pxQueue ) )问题的解决

qq_42007164的博客 9564

黑马程序员-GUI概述

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------      GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便直观。 CLI Command Line  User Interface(命令行用户接口) 就是常见的Dos命令行操作 需要记

o492712736o的专栏 535

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3706

黑马程序员——GUI——GUI概述与使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一.GUI 1.GUI概述: GUI:GUI(Graphical User Interface): 图形用户接口,用图形的方式,来显示计算机操作的界面,这样更方便更直观。 GUI编程通常为桌面应用编程,不用于WEB编程。 CLI:CLI(Command Line Us

hison_lian的博客 782

Python爬虫实战:5分钟搞定大众点评评论数据抓取(附完整代码)

本文详细介绍了使用Python爬虫高效获取大众点评评论数据的5个关键技巧,包括环境配置、智能页面解析、反反爬策略、数据存储与容错设计以及性能优化。通过实战案例和完整代码,帮助开发者快速掌握文本挖掘技术,适用于市场分析和商业决策。

weixin_30660027的博客 290

【随机过程】Markov Chain的定义及发展历程与实际应用

本模块书写的初衷:由于在学习张波张景肖等学者所著的《应用随机过程》存在着不甚了解的知识点,经过个人查找资料并整理、分享,希望能够为有同样疑惑的读者贡献绵薄之力,同时如果个人编写内容有错误,恳请读者指正。本文为对《应用随机过程》第42页中Markov Chain基本概念的补充。1.Markov Chain的定义俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。

qq_49657150的博客 3746

黑马程序员_图形用户界面GUI概述

---------------------- android培训、java培训、期待与您交流! ---------------------- GUI全称是Graphical User Interface,即图形用户界面。 JDK中提供了AWT和Swing两个包,用于GUI程序

heima_zhuangjiguang的专栏 791

视觉巡线小车(STM32+OpenMV)——技术总结

在现代机器人技术中,视觉巡线是一种常见的导航方式,它允许机器人通过识别和跟踪地面上的线路来自主导航。本文将总结使用STM32微控制器和OpenMV视觉模块来实现视觉巡线小车的关键技术和步骤。

weixin_66608063的博客 3078

黑马程序员_java GUI(图形化界面)概述

在第一天学习java的时候,我们就知道了软件就是为了实现人机交互而出现的,交互的方式有两种,一种是命令行方式另一种就是图形化界面。图形化界面简称GUI,是一种方便用户使用的人机交互方式。java为GUI提供的对象都存在与java.Awt和java.Swing包中。java.Awt是一个抽象窗口工具包,需要调用本地系统方法实现功能,属于重量级空间。java.Swing是在Awt的基础上建立的一套图形

xgd6629的专栏 742

Linux 桌面虚拟化技术 KVM

Linux 桌面虚拟化技术 KVM

高飞的博客 36万+

Android 13 SPRD 源码默认打开多用户实际无效果问题修复

【代码】Android 13 SPRD 源码默认打开多用户实际无效果问题修复。

m0_60898338的博客 449

黑马程序员——java编程那些事儿____GUI概述

-------android培训、java培训、期待与您交流! ---------- 一 GUI概述         GUI Graphical User Interface(图形用户接口)。 用图形的方式,来显示计算机操作的界面,这样更方便更直观。 Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。

wang_zhi_的专栏 675

基于STM32设计的水下水质检测装置(微信小程序)(205)

本项目设计了一款基于STM32微控制器为核心的水下水质检测设备,该设备具有高度集成化、智能化的特点,能够实时监测水深、温度、浊度及溶解性总固体(TDS)等关键水质参数,并通过4G网络将数据上传至腾讯云IOT物联网平台,实现远程监控和数据分析。同时,为了便于操作和移动观测,还配套开发了微信小程序,用户可通过微信小程序实时查看并控制设备的各项功能,如调整下潜深度等。

1252

黑马程序员 GUI

dg

h 719

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

黑马程序员—Java的GUI

12. GUI     12.1 GUI概述   GraphicalUser Interface 图形用户接口,Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。   java.Awt :Abstracet Window ToolKit,需要调用本地系统方法实现功能,属重量级控件   javax.Swing:在Awt的基础上,建立的一套图形界面系统

rubiolelouch的博客 502

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

黑马程序员 Java基础学习之GUI

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- GUI概述 以前我们接触的操作窗口就是dos窗口,而且该窗口也有很大的局限性,比如只能使用dos命令,而且效率也比较低,所以Java为我们提供了GUI(图形用户话界面),用来可以直接操作图形 GUI和其他类一样也封装哎java.awt和javax,Swing这两个包中 区别:java a

u013372012的专栏 503

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

黑马程序员——GUI

------- android培训、java培训、期待与您交流! ---------- (一)GUI概述 GUI(Graphical User Interface):图形用户接口,用图形的方式,来显示计算机操作的界面,这样更方便更直观。       •GUI编程通常为桌面应用编程,不用于WEB编程。 CLI(Command Line User Interface) :命

u010154008的博客 368

黑马程序员——java基础——GUI

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、GUI(图形用户界面) 1、GUI概述 1)GUI:GraphicalUser Interface,图形用户界面。用于用户与计算机进行交互。用图形的方式,来显示计算机操作的界面,这样更方便更直观。 2)CLI :Command lineUser Interface (命令

Huberry的专栏 790

黑马程序员————JAVA之GUI

------- http://www.itheima.com" target="blank">android培训java">http://www.itheima.com"target="blank">java培训、期待与您交流!   一、GUI概述及体系图      1.GUI:Graphical User Interface(图形用户接口)。        1) GUI全称Grap

hou0201_的博客 458

黑马程序员——GUI1:上篇

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- GUI1:上篇 1.  GUI概述        GUI是Graphical User Interface的简称,意思是图形用户接口,其实就是Java标准类库中对外提供的用于图形化界面编程的各种组件(可以理解为各种类)。在继续介绍图形化界面编程之前,首先要说一说人机交互,以及人机交互的

axr1985lazy的专栏 1249

黑马程序员 GUI的一些笔记

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- GUI Graphical User Interface (图形用户接口) CLI Command Line User Interface (命令行用户接口) java为GUI 提供的

u011523677的专栏 900

黑马程序员——图形用户界面GUI

------- android培训、java培训、期待与您交流! ---------- 第一讲     GUI(图形用户界面) 一、概述 1、GUI:GraphicalUser Interface,即图形用户界面,用于计算机与用户交互的一种方式。 2、计算机与用户交互的两种方式:GUI和CLI         GUI: Graphical User Interfa

永恒的博客 523

黑马程序员——GUI编程

  ------- android培训、java培训、期待与您交流! ----------  一、名词解释: GUI • Graphical User Interface(图形用户接口)。 •用图形的方式,来显示计算机操作的界面,这样更方便更直 观。 CLI • Command line User Interface (命令行用户接口) •就是常见的Dos命令行操作。

u010073156的专栏 980

黑马程序员 Java GUI

---------------------- android培训、java培训、期待与您交流! ----------------------                Java GUI图形用户界面,GUI的全称是Graphical User Interface(图形用户接口),计算机的另一种交互方式叫做命令行用户接口(CLI)。Java的GUI主要用在两个方面Application和Ap

kobe24dh的专栏 736

黑马程序员--GUI

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ---------------------- GUI(图形用户界面) (一)与用户交互的两种方式: (1)GUI:Graphical User Interface(图形用户接口)。 含义:用图形的方式,来显示计算机操作的界面,这样更方便更直观。 友情提示:一般

zmssln的专栏 389

黑马程序员 java_GUI笔记

-------android培训 、java培训、期待与您交流! ---------- GUI(图形用户界面) GUI Graphical User Interface(图形用户接口)。 用图形的方式,来显示计算机操作的界面,这样更方便更直观。 CLI Command line User Interface (命令行用户接口) 就是常见的Dos命令行操作。  需要记忆一些常

学习笔记 1592
上一篇: 黑马程序员_IO(字符流和字节流)
下一篇: 黑马程序员_IO中其他流对象
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值