图形用户界面编程
- 格式:pdf
- 大小:1.49 MB
- 文档页数:39


第7章 图形用户界面
第7章 图形用户界面
在前边介绍的应用程序中,都是采用字符方式的用户界面。从本章开始,将进行图形用户界面的程序设计。在应用系统中,程序操作界面(用户界面)是用户与计算机系统沟通的桥梁,因此,用户界面的优劣直接关系到的使用。
本章主要介绍Java中的图形用户界面的相关知识,其中包括:容器、组件、布局管理器等内容。
7.1 概述
所谓图形用户界面(Graphics User Interface,简称GUI),是指使用图形的方式,以菜单、按钮、标识、图文框等标准界面元素组成的用户操作屏幕。大家最常见、使用最多的是Windows系统下的用户操作界面。
在应用系统得开发中,根据需要可能要设计各种各样的用户界面。因此,我们所关心的是开发环境提供了哪些用于构成用户界面的组件元素,这些组件元素的功能及作用是什么,组件元素之间有无关系,如何利用这些组件元素构建用户操作界面。
在Java中,将构成图形用户界面的各种组件元素大致可分为以下三类:容器、组件和用户自定义成分。
1.容器(Container)
容器是用户屏幕上的一个特殊的窗口,它用来组织或摆放其它界面元素。一个容器上可以摆放若干个界面元素,这些界面元素本身可能也是一个容器,这些容器上也可摆放其它的界面元素,依次类推就可构成一个复杂的图形界面系统。例如,框架(Frame)容器是Java中的标准窗口,在它上边可以摆放窗格(Panel)容器和其他组件,在窗格容器上又可以摆放窗格容器和其他组件等等。
容器的引入有利于把复杂的图形用户界面分解为功能相对独立的子部分。在设计用户界面时,如果使用的界面元素较多,就可以按操作需要分类,将它们分别放在不同的容器中,然后以某种规则(嵌套、行列、顺序等)摆放在用户屏幕上。
如上所述,容器是构建用户界面的关键组件,它的主要特点如下:
1)容器是一个窗口(矩形区域),作为一个组件对象被摆放在屏幕上,有其位置和大小,在它上边摆放的元素也被限制在这个窗口之内。
转:python实现GUI(图形⽤户界⾯)编程
转:https:///dongfei2033/article/details/77971197/
Python⽀持多种图形界⾯的第三⽅库,包括:wxWidgetsQtGTK
Tkinter: Tkinter 模块(Tk 接⼝)是 Python 的标准 Tk GUI ⼯具包的接⼝ .Tk 和 Tkinter 可以在⼤多数的 Unix 平台下使⽤,同样可以
应⽤在 Windows 和 Macintosh 系统⾥。Tk8.0 的后续版本可以实现本地窗⼝风格,并良好地运⾏在绝⼤多数平台中。
wxPython:wxPython 是⼀款开源软件,是 Python 语⾔的⼀套优秀的 GUI 图形库,允许 Python 程序员很⽅便的创建完整的、
功能键全的 GUI ⽤户界⾯。
Jython:Jython 程序可以和 Java ⽆缝集成。除了⼀些标准模块,Jython 使⽤ Java 的模块。Jython ⼏乎拥有标准的Python 中不
依赖于 C 语⾔的全部模块。⽐如,Jython 的⽤户界⾯将使⽤ Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java
字节码。
Tkinter
我们来梳理⼀下概念:
我们编写的Python代码会调⽤内置的Tkinter,Tkinter封装了访问Tk的接⼝;
Tk是⼀个图形库,⽀持多个操作系统,使⽤Tcl语⾔开发;
Tk会调⽤操作系统提供的本地GUI接⼝,完成最终的GUI。
所以,我们的代码只需要调⽤Tkinter提供的接⼝就可以了。
在GUI中,每个Button、Label、输⼊框等,都是⼀个Widget。Frame则是可以容纳其他Widget的Widget,所有的Widget组合起来就是⼀棵
树。
pack()⽅法把Widget加⼊到⽗容器中,并实现布局。pack()是最简单的布局,grid()可以实现更复杂的布局。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class getCounter extends Applet implements
ActionListener
{
Label prompt=new Label(" ");
Button btn1=new Button("计数器加一");
Button btn2=new Button("计数器减一");
Button btn3=new Button("计数器清零");
Counter counter=new Counter(5);
public void init()
{
add(btn1);
add(btn2);
add(btn3);
add(prompt);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
prompt.setText("当前计数器数值为:"+counter.getCounter1());
if(e.getSource()==btn2)
prompt.setText("当前计数器数值为:"+counter.getCounter2());
如何进行Java GUI图形用户界面编程
进行Java GUI(Graphical User Interface,图形用户界面)编程,大家或许经常徘徊在SWT/JFACE, Swing, AWT之间选择,哪一个更合适自己?AWT作为Java语言的第一个GUI类库包,在这三者之间中年龄最长,可谓开国元勋;老二Swing,兼容AWT, 同时又对AWT进行了改进,可谓站在前辈的肩膀上,自然就会看的远了;老三SWT/JFace,则只能用不走寻常路来形容它,SWT/JFace采取了与 AWT和Swing完全不同的技术路线。这三剑客之间,究竟孰优孰劣,且听下文分解。
1. 穷途末路的AWT
AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包 提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类被称为组件(components)。
抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统, 图形和用户界面器件工具包。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。
AWT提供了Java Applet和Java Application中可用的用户图形界面GUI中的基本组件(components)。由于Java是一种独立于平的程序设计语言,但GUI却往往是 依赖于特定平台的,Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口,这保证了同一程序的GUI在不同机器上运行具有类似的外观 (不一定完全一致)。
抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关;数据传 送类,可以通过本地平台的剪贴板来进行剪切和粘贴。