第11章 GUI编程
- 格式:pptx
- 大小:337.21 KB
- 文档页数:23


Java的GUI编程一、介绍Java是一种广泛使用的编程语言,具有跨平台性和面向对象的特点。
GUI (Graphical User Interface)编程是指通过图形化界面与用户进行交互的编程方式。
Java提供了丰富的GUI编程工具和库,使开发人员能够轻松地创建各种图形化界面应用程序。
二、SwingSwing是Java中最常用的GUI编程框架之一。
它提供了一套丰富的组件,如按钮、文本框、标签等,以及容器组件,如面板、框架等。
开发人员可以使用Swing 来构建各种复杂的图形化界面应用程序。
在Swing中,每个组件都有自己的属性和方法,可以通过设置和调用这些属性和方法来实现不同的功能。
例如,可以通过设置按钮的文本、颜色和事件处理程序来创建一个可点击的按钮。
Swing还支持布局管理器,用于自动调整组件的位置和大小。
常用的布局管理器有FlowLayout、BorderLayout和GridLayout等。
开发人员可以根据需求选择合适的布局管理器来实现自己想要的界面布局。
三、JavaFXJavaFX是Java中另一个重要的GUI编程框架。
与Swing相比,JavaFX提供了更加现代化和强大的功能。
它使用了一种基于XML的标记语言FXML来描述界面,使得界面设计和开发更加灵活和易于维护。
JavaFX提供了丰富的内置组件,并且支持自定义组件的开发。
它还支持动画效果、图形渲染和多媒体处理等高级功能。
开发人员可以利用这些功能创建出更加精美和交互性强的界面应用程序。
JavaFX还提供了场景图(Scene Graph)的概念,用于管理界面上的所有组件和布局。
开发人员可以通过添加和删除组件、设置组件的属性和监听用户事件来实现界面的交互和动态更新。
四、AWTAWT(Abstract Window Toolkit)是Java最早的GUI编程框架,它提供了一套与操作系统窗口系统交互的接口。
AWT的组件和布局管理器是基于操作系统的原生界面,因此在不同的操作系统上可能会有不同的外观和行为。
Python基础之GUI编程图形⽤户界⾯(Graphical User Interface,简称 GUI,⼜称图形⽤户接⼝)是指采⽤图形⽅式显⽰的计算机操作⽤户界⾯。
相⽐于命令⾏模式,更加⽅便⽤户操作,增强⽤户体验。
本⽂以⼀个简单的登录窗⼝为例,简述GUI(图形化⽤户界⾯)编程的相关知识点,仅供学习分享使⽤,如有不⾜之处,还请指正。
涉及知识点Tkinter 是 Python 的标准 GUI 库。
Python 使⽤ Tkinter 可以快速的创建 GUI 应⽤程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、⽽且 IDLE 也是⽤ Tkinter 编写⽽成、相关知识点如下:Tk:定义⼀个图形化窗⼝,其中title⽤于设置标题,geometry⽤于设置⼤⼩,位置,mainloop⽅法⽤于显⽰界⾯。
Label: 定义⼀个⽂本显⽰标签,⽤户⽆法修改内容Entry: 定义⼀个⽂本框,⽤户可以输⼊内容。
Button:按钮,可以绑定单击事件,响应⽤户的操作。
pack:布局⽅式的⼀种,默认⼀⾏⼀个元素,居中显⽰,可以设置anchor来设置对齐⽅式。
登录功能分析与设计需求描述:⽤户需要输⼊⽤户名密码,然后点击登录按钮进⾏登录。
程序设计:需要两个⽂本框⽤于输⼊⽤户名和密码,以及对应的标签需要⼀个登录按钮并在单击时响应对应事件。
登录事件需要对输⼊的⽤户名密码进⾏校验。
如不合法,需要进⾏提⽰。
页⾯布局需要友好舒适,符合⼤众审美。
程序实现步骤如何实现⼀个简单的登录窗⼝,操作步骤如下:1. 定义⼀个空⽩窗⼝,如下所⽰:1from tkinter import * # 引⼊tkinter包23 app = Tk() # 定义⼀个界⾯4 app.mainloop() # 显⽰页⾯默认情况下,定义的窗⼝会显⽰与屏幕左上⽅,且标题为空,如下所⽰:2. 添加标题,并设置页⾯⼤⼩和位置,如下所⽰:1 app = Tk() # 定义⼀个界⾯2 app.title(string='Alan.hsiang>>>系统登录') # 设置标题3 app.geometry('400x300+300+400') # ⼤⼩坐标设置格式 =widthxheight+x+y4 app.mainloop()添加标题和设置⼤⼩位置后,效果如下所⽰:3. 添加页⾯组成元素当空页⾯创建完成后,需要为页⾯添加元素(⽤户名,密码,登录按钮等),如下所⽰:1 app = Tk() # 定义⼀个界⾯2 app.title(string='Alan.hsiang>>>系统登录') # 设置标题3 app.geometry('400x300+300+400') # ⼤⼩坐标设置格式 =widthxheight+x+y4 name_label = Label(master=app, text='⽤户名') # Label⽤于显⽰⽂本内容,且⽤户⽆法修改5 pwd_label = Label(master=app, text='密码') # master ⽤于表⽰对象属于哪个容器6 name_entry = Entry(master=app) # ⽂本框,⽤户可以进⾏输⼊7 pwd_entry = Entry(master=app, show='*') # 密码框,显⽰密⽂,以*代替8 login_btn = Button(master=app, text='登录') # 登录按钮9 name_label.pack(anchor=W) # pack ⽅式布局,默认为居中,⼀个元素⼀⾏ anchor⽤于设置对齐⽅式10 name_entry.pack(anchor=W)11 pwd_label.pack(anchor=W)12 pwd_entry.pack(anchor=W)13 login_btn.pack(anchor=W)14 app.mainloop()执⾏结果,如下所⽰:4. 变更页⾯布局⽅式默认的pack布局⽅式,是⽐较丑的,下⾯采⽤grid⽅式进⾏布局,如下所⽰:1 name_label.grid(row=0,column=0) # grid ⽅式布局,通过设置⾏列的⽅式布局,从0开始2 name_entry.grid(row=0,column=1)3 pwd_label.grid(row=1,column=0)4 pwd_entry.grid(row=1,column=1)5 login_btn.grid(row=2,column=1)执⾏结果如下所⽰:5. 继续优化布局通过grid布局后,虽然看起来⽐较接近,但是元素距离左边太近,且控件之前太拥挤,没有空隙,可以通过设置padx,pady来改变,如下所⽰:1 name_label.grid(row=0, column=0, padx=20, pady=20) # grid ⽅式布局,通过设置⾏列的⽅式布局,从0开始2 name_entry.grid(row=0, column=1)3 pwd_label.grid(row=1, column=0)4 pwd_entry.grid(row=1, column=1)5 login_btn.grid(row=2, column=1, pady=20, stick=E) # stick表⽰靠哪边对齐,通过N(北)S(南)W(西)E(东)来表⽰设置padx,pady后,效果如下所⽰:6. 添加事件当初步完成页⾯布局后,下⾯开始完善功能,为按钮添加事件。
Java编程基础——GUI编程12第十一章GUI 编程目标:本章旨在向学员介绍本章旨在向学员介绍::什么是GUI GUI,,Java AWT 包,什么是容器的概念及相关类的概念及相关类。
AWT 包中组件的继承关系的继承关系。
布局管理器布局管理器。
AWT 中常用组件的使用中常用组件的使用。
AWT 中的事件处理模型件处理模型。
简介Swing API 。
如何给Java 应用程序打包应用程序打包。
时间时间::学时教学方法教学方法::3本章要点•GUI 概述•AWT 概述•AWT 中的组件和容器•布局管理器•事件处理模型•事件分类•事件适配器•匿名内部类•Applet •Swing•Jar 为应用程序打包4GUI 概述•GUI (Graphical User Interface )图形用户界面,包括窗口、菜单栏、工具条、按钮等组件和其他各种屏幕元素•GUI 组件按其作用可分为基本组件基本组件((简称组件简称组件))和容器两大类:–GUI 组件,也称构件,其上不能容纳其他组件,如按钮、文本框等图形界面元素–容器是一种特殊的组件,用来容纳其他组件,如窗口、对话框等•Java 提供了两个GUI 的开发包:java.awt 和javax.swing –java.awt 包中的抽象类Component 是所有Java GUI 组件的共同父类,它规定了所有GUI 组件的基本特性–swing是AWT的扩展,它提供了更强大和更灵活的组件集合,如树,表格等等5AWT 概述•AWT (Abstract Window Tools)是java 中处理图形最基本的方式,可以用来创建Java 的Applet 及窗口程序。
•由于AWT 中的每个组件都需要消耗系统资源,Sun 对AWT 进行改进,Swing 由此出现。
•Swing 的组件均是由AWT 中的Container 类为基础开发设计的,故需学习AWT 技术。
6•一个Java 的图形用户界面的最基本组成部分就是组件(Component ),组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象。