第一章 GUI3_组件
2012-GUI-3-1

设置GUI组件的背景和前景色:
组件对象.setBackground(Color c)
组件对象.setForeground(Color c)
例:设置一个JTextField组件的背景色是黄色, 前景色为红色:
JTextField Jl1=new JTextField(“姓名”); Jl1. setBackground(Color.YELLOW); Jl1.setForeground(Color.RED);)
(x,y)
height
width
绘制椭圆示意图
绘制弧形 drawArc(int x, int y, int width, int height, int startAngle, int arcAngle); fillArc(int x, int y, int width, int height, int startAngle, int arcAngle); 其中x、y、width、height参数的含义和drawOval()方法的参数含义 相同,参数startAngle表示该弧的起始角度,参数arcAngle表示生 成角度(从startAngle开始转了多少度),且水平向右方向表示0 度,从0度开始沿逆时针方向旋转为正角。
p5 p4 p3 v5 v4 p2 v6 v0 v3 v1 v2
Java2D API
一、 Java2D 简介
Java 2D API(Application Programming Interface) 增 强了抽象窗口工具包 (AWT) 的图形、文本和图像功能,描 绘出任意的二维图形,并能设置图形的线条样式和填色效 果,能对图形做旋转、缩放、扭曲等。
(3)字体(font):该属性可以确定所显示字符串的字体。用 户可以通过setFont(Font f)方法进行该属性值的设置。 (4)转换(transform):该属性确定了图形绘制过程中要应 用的转换方法,通过指定转换方法可将所画内容进行平移、 旋转和缩放。用户可以通过setTransform()方法进行该属 性值的设置。 (5)剪切(clip) :该属性定义了组件上某区域的边界。用 户可以通过setClip(Clip c)方法进行该属性值的设置。 (6)合成(composite):该属性定义了如何绘制重叠的几何 图形,使用合成规则可以确定重叠区域的显示效果。用户 可以通过setComposite(Composite c)方法来设置该属性 的值。
GUI(用户图形界面)

03
减少了程序中的循环和延时操作,提高了 程序的执行效率。
04
方便实现复杂的交互逻辑和动态界面效果。
多任务和多线程
01
并行处理
02 支持多个任务同时运行和处理,提高了程序的并 发性能和响应速度。
03 可以将耗时的任务放在后台线程中执行,避免阻 塞主线程和影响用户体验。
多任务和多线程
• 提供了线程同步和互斥机制,避免多线程并发访问导致的 数据竞争和死锁问题。
重要性
GUI为用户提供了一种直观、易用的操作方式,使得计算机的使用变得更加便捷 和高效。GUI能够降低用户的学习成本,提高工作效率,并增强用户体验。
GUI的历史和发展
历史
GUI的概念起源于20世纪60年代,最早的图形用户界面是SGI公司为斯坦福大学开发的斯坦福大学图形界面 (Stanford Graphics Interface)。随着计算机技术的不断发展,GUI逐渐成为计算机操作系统和应用程序的标 准界面。
娱乐软件
娱乐软件是一类用于休闲和放松的软件,如 音乐播放器、视频播放器等。GUI在娱乐软 件中扮演着重要的角色,提供了简洁、易用 的界面,使用户能够轻松地享受娱乐内容。
嵌入式系统和专用设备
嵌入式系统
嵌入式系统是一类专用的计算机系统,通常 用于控制和管理特定的硬件设备。GUI在嵌 入式系统中起着重要的作用,提供了直观、 易用的界面,使用户能够方便地与设备进行 交互和控制。
错误处理与提示
GUI应具备完善的错误处 理机制和友好的提示信息, 帮助用户快速解决问题。
适应性与兼容性
GUI应具备良好的适应性 与兼容性,支持不同设备 和浏览器的使用,确保用 户体验的一致性。
美观性原则
视觉层次与布局
javagui知识点总结

javagui知识点总结一、Swing GUI组件Swing是Java中用于创建GUI的一套组件库,它提供了丰富的GUI组件,包括按钮、文本框、标签、列表框、表格等等。
这些组件可以通过代码进行创建、配置和操作,从而构建出丰富多彩的用户界面。
Swing组件还支持丰富的外观和行为定制,可以通过设置各种属性和监听器来满足不同的需求。
1.1 按钮(Button)按钮是Swing中最基本的GUI组件之一,它通常用于触发某个操作或事件。
在Swing中,按钮可以通过JButton类来创建,可以设置按钮的文本、图标、颜色、大小、位置等属性,并为按钮添加各种监听器来处理用户的点击事件。
1.2 文本框(TextField)文本框用于接受用户的输入,可以通过JTextField类来创建,可以设置文本框的默认文本、颜色、大小、位置等属性,并通过添加文本变化监听器来实时监测用户的输入。
1.3 标签(Label)标签用于显示静态文本信息,可以通过JLabel类来创建,可以设置标签的文本、字体、颜色、大小、位置等属性,还可以通过添加鼠标事件监听器来实现交互式标签。
1.4 列表框(ListBox)列表框用于显示一组选项供用户选择,可以通过JList类来创建,可以设置列表框的选项、颜色、大小、位置等属性,并为列表框添加选择事件监听器来处理用户的选项选择。
1.5 表格(Table)表格用于显示和编辑二维数据,可以通过JTable类来创建,可以设置表格的数据模型、列模型、传输器、颜色、大小、位置等属性,并为表格添加各种监听器来处理表格的编辑和选择事件。
二、事件处理在Java GUI编程中,事件处理是至关重要的一部分,它用于实现用户界面和用户交互的逻辑。
Swing组件提供了丰富的事件类型,包括鼠标事件、键盘事件、焦点事件、窗口事件等等,开发人员可以通过添加事件监听器来处理这些事件,从而实现用户交互的各种效果。
2.1 事件监听器(EventListener)事件监听器是一种特殊的接口,用于监听和处理特定类型的事件。
GUI基础概述

目前,大多数软件都是图形用户界面(Graphics User Interface, 简称GUI)的,并且程序的运行是靠事件驱动(event-driven) 的。
这样的应用程序可以使用户很方便地与程序进行交互。
本章主要介绍使用Java开发图形用户界面程序的方法,其中包括容器和布局管理器,另外还将介绍Java小程序的开发以及图形绘制等内容。
Java GUI基础1.1 概述图1就是一个图形用户界面的应用程序,其中包含的图形界面元素有窗口、菜单、工具栏、按钮、选项卡等。
该程序是JDK自带的演示程序,通过运行jdk_install\demo\jfc\swingset2.html或jdk_install \demo\jfc\SwingSet2\SwingSet2.jar程序可以得到该界面,这里jdk_install是JDK的安装目录。
图1 GUI演示程序在Java 1.2之前,Java提供了一个AWT类库,Sun把它叫做抽象窗口工具箱(Abstract Window Toolkit, 简称AWT) 。
为了开发GUI程序,程序员需要使用该库中有关的类,它为程序员提供了构建GUI程序的组件,如Frame、Button、Label等。
这些组件是通过java.awt 包提供的。
AWT最初是为设计小应用程序界面而开发的。
由于AWT存在严重缺陷,Sun从Java 1.2 版开始提供了一个新的组件库Swing。
Swing可以说是第二代GUI开发工具集,它是通过javax.swing包提供的,javax.swing包也是Java基础类库(Java Foundation Classes,JFC)的组成部分。
由于Swing组件比AWT组件有许多优点,所以新开发的程序应该使用Swing 组件而不应该再使用AWT组件。
但是,要注意Swing组件并没有完全取代AWT,它只是替代了AWT包中的图形用户界面组件(如Button、TextFiels、TextArea等),AWT中的一些辅助类(如Graphics、Color、Font、LayoutManager等)仍然保持不变。
GUI详解

GUI详解GUI基本概念GUI即Graphical Users Interger,图形用户接口。
布局管理器:FlowLayout从左到右的顺序排列BorderLayout(边界布局管理器)东南西北中Gridlayout(网格布局管理器)规则的矩阵CardLayout(卡片布局管理器)选项卡GridBagLayout(网格包布局管理器)非规则的矩阵组件:按钮组件:(Button):此类创建一个标签按钮。
当按下该按钮时,应用程序能执行某项动作常用的方法:a)void actionListener(ActionListener); 添加指定的动作侦听器,以接收发自此按钮的动作事件b)构造方法:Button(String lable):构造一个带指定标签的按钮。
文本框组件:(TextField):对象是允许编辑单行文本的文本组件。
常用的方法:a)构造方法:TextField(String columns):构造具有指定列数的新空文本字段。
b)void actionListener(ActionListener l):添加指定的操作侦听器,以从此文本字段接收操作事件c)void setText(String T): 将此文本组件显示的文本设置为指定文本。
d)String getText():返回此文本组件所表示文本的选定文本。
继承自父类TextComponent文本域组件:(TextArea):对象是显示文本的多行区域。
可以将它设置为允许编辑或只读。
常用的方法:a)构造函数:TextArea(int rows,int columns):构造一个新文本区,该文本区具有指定的行数和列数,并将空字符串作为文本b)void append(String str):将给定文本追加到文本区的当前文本。
c)void setText(String T): 将此文本组件显示的文本设置为指定文本。
d)String getText():返回此文本组件所表示文本的选定文本。
事件处理与GUI组件

15
例:TextCheckbox.java
• public class TextCheckbox extends Applet implements ItemListener
//创建一个TextCheckbox类作为监听者
• public void itemStateChanged(ItemEvent e)
• • • • • public class TextComponentEvent extends Applet implements TextListener, ActionListener //创建了一个类,实现两个接口 public void textValueChanged(TextEvent e) //文本内容发生改变时的响应 public void actionPerformed(ActionEvent e) //在文本框内按回车键时的响应 tf.addActionListener(this); tf.addTextListener(this); //给文本框对象tf加载两种监听者
10
• • • • • • •
标签、按钮与动作事件(例:BtnLableAction)
JLabel prompt; JButton btn; prompt = new Label("你好"); btn = new Button(“操作”); add(prompt); add(btn); btn.addActionListener(this)
11
例:BtnLableAction.java
•
public class BtnLableAction extends Applet implements ActionListener
gui程序设计的一般流程

gui程序设计的一般流程GUI(图形用户界面)程序设计是指在计算机上创建、设计和实现具有图形化用户界面的应用程序的过程。
GUI程序广泛应用于各种领域,如操作系统、办公软件、娱乐软件等。
本文将介绍GUI程序设计的一般流程,以帮助读者了解如何构建一个功能完善、易于使用的GUI程序。
1. 界面设计:GUI程序的第一步是设计用户界面。
界面设计应着重考虑用户的使用习惯和操作习惯,以提供简洁、直观、友好的界面。
在界面设计中,通常使用可视化设计工具,如Adobe XD、Sketch等,来创建和排列界面元素,例如按钮、文本框、下拉菜单等。
此外,还需要选择适合的颜色和字体以增强用户体验。
2. 控件选择:在设计用户界面时,需要选择合适的控件来实现特定的功能。
常见的GUI控件包括按钮、文本框、标签、背景图像等。
控件的选择应基于实际需求和用户体验。
例如,使用按钮来触发某个动作,使用文本框来接收用户的输入等。
了解各种控件的属性和功能,可以帮助开发者更好地选择适合的控件。
3. 事件处理:GUI程序设计中,用户与界面进行交互会触发各种事件,如点击按钮、输入文本等。
事件处理是编写GUI程序的核心部分,通过处理这些事件,实现特定的功能。
例如,点击按钮时执行某个操作,响应键盘输入等。
开发者需要编写相应的事件处理函数来处理这些事件,并给出相应的操作逻辑。
4. 数据处理:在GUI程序中,数据处理是不可避免的一部分。
用户输入的数据可能需要进行处理、计算和存储。
数据处理部分包括数据的读取、处理、存储和展示等。
开发者需要根据实际情况选择合适的数据结构和算法来处理数据,并将结果反馈给用户。
5. 调试和测试:在开发GUI程序时,调试和测试是十分重要的环节。
调试可以帮助开发者找到程序中的错误并解决它们,测试可以确保程序的功能正常运行。
开发者可以使用调试工具来逐步调试程序,并编写测试用例来验证程序的正确性。
通过不断的调试和测试,保证GUI程序的稳定性和可靠性。
GUI入门教程范文

GUI入门教程范文GUI(Graphical User Interface,图形用户界面)是一种以图形方式显示信息并与用户进行交互的界面。
相比于传统的命令行界面,GUI界面更为直观、易用,因此在软件开发中得到了广泛的应用。
在本文中,将为您介绍GUI的基本概念和入门教程。
一、GUI的基本概念1. 窗口(Window):GUI界面的基本单元,承载用户交互和信息显示功能。
窗口可以包含按钮、文本框、复选框等控件。
3. 事件(Event):用户在GUI界面上的操作,例如点击按钮、输入文本等都被称为事件。
开发人员需要通过编程来处理这些事件,以实现相应的功能。
4. 布局(Layout):控制控件在窗口中的位置和大小的方式。
常用的布局方式有绝对布局、流式布局和网格布局等。
二、GUI入门教程1. 选择合适的GUI库:在选择GUI库时,需要根据开发语言和应用场景来进行选择。
常见的GUI库有Java的Swing和JavaFX,Python的Tkinter和PyQt,C#的Windows Forms和WPF,以及C++的Qt等。
本教程以Python的Tkinter库为例进行介绍。
2. 创建窗口:首先,需要导入Tkinter库,并创建一个顶级窗口对象。
代码如下:```pythonfrom tkinter import Tk#创建顶级窗口对象window = Tk#设置窗口标题window.title("My GUI")#显示窗口window.mainloop``````pythonfrom tkinter import Tk, Button, Label#创建顶级窗口对象window = Tk#设置窗口标题window.title("My GUI")#创建按钮控件button = Button(window, text="Click Me!") label = Label(window, text="Hello, GUI!") #将控件添加到窗口中button.packlabel.pack#显示窗口window.mainloop```4. 布局控制:通过调整布局方式和控件的属性,可以实现控件在窗口中的位置和大小的调整。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void setEnabled(Boolean b)
Boolean isSelected() void setRolloverIcon(Icon icon)
设置按钮是否禁用
得到按钮的状态 为按钮设置提示文本
按钮
JButton类的构造方法
JButton() JButton(Icon icon) JButton(String str) 创建一个按钮 创建一个带图标的按钮 创建一个包含文字的按钮
创建一个含有str文字的标签 同上,并指定它的水平排列方式 创建一个含有图标和文字的标签,指定水平排 列方式 获得此标签的图标 设置标签的图标 获得标签的文字
void setText(String str)
void setHorizontalAlignment(int alig) void setVerticalAlignment(int alig) void setHorizontalTextPosition(int ps)
创建空的列表框,Biblioteka 以用 addItem()方法添加可选项
使用向量表创建列表框 使用数组创建列表框
void addListSelectionListener (ListSelectionListener e)
int getSelectedIndex()
将事件监听者注册给JList对 象
获取选中的单项
int getSelectedIndices(int [ ] )
复选框和单选按钮
JCheckBox类的构造方法 JCheckBox() JCheckBox(Icon icon) 功能说明 创建一个无标签的复选框 创建一个带图标的复选框
JCheckBox(Icon icon,Boolean sele) 创建一个带图标初始状态为 sele的复选框
JCheckBox(String str) 创建一个包含文字的复选框 JCheckBox(String str,Boolean sele) 创建一个包含文字初始状态为 false的复选框 JCheckBox(String str,Icon icon) JCheckBox(String str,Icon icon,Boolean sele) 创建一个包含文字和图标的复 选框 创建一个包含图标和文字初始 状态为false的复选框
JComboBox(ComboBoxModel model) 从已有的model中获得可选项,创 建下拉列表框 JComboBox(Object items) 使用数组创建下拉列表框 void addActionListener(ActionListener e) 注册事件对象给ActionListener对 象
不 可 编 辑信息 显 示 组件 JLabel 、 JProgressBar 、 JToolTip等
可编辑格式化信息 显示组件 JColorChooser 、 JFileChooser、Jtabel、 JTextArea、JTree等
Swing组件分类
组件从功能上分可分为 :
1) 顶层容器:JFrame,JApplet,JDialog,JWindow共4个 2) 中间容器: JPanel,JScrollPane,JSplitPane,JToolBar 3) 特殊容器:在GUI上起特殊作用的中间层,如 JInternalFrame,JLayeredPane,JRootPane. 4) 基本控件:实现人际交互的组件,如Jbutton, JComboBox, JList, JMenu, JSlider, JtextField。 5) 不可编辑信息的显示:向用户显示不可编辑信息的组件, 例如JLabel, JProgressBar, ToolTip。 6) 可编辑信息的显示:向用户显示能被编辑的格式化信息 的组件,如JColorChooser, JFileChoose, JFileChooser, Jtable, JtextArea。
RadioBoxAndCheckBox.java
下拉列表框
下拉列表框由JComboBox类派生的。其特点是 将所有选项折叠起来,只显示最前面的那个或 选中的某一个。 注:对应AWT中Choice
下拉列表框
JComboBox方法 JComboBox() JComboBox(Vector vect) 功能说明 创建空的下拉列表框,可以用 addItem()方法添加可选项 使用向量表创建下拉列表框
标签
JLabel 只能显示文字而不能够对文字进行编辑,是静态组件。 允许添加图像,并在鼠标光标停留时显示一段文字提示。构 造器和主要方法如下:
标签
JLabel() JLabel(Icon icon) 创建一个空标签 创建一个图标为icon的标签
JLabel(Icon icon,int alignment)
void addItemListener(ItemListener a)
void addItem(Object object) Object getItemAt(int index) int getItemCount() Object getSelectedItem() void setSelectedIndex(int first)
设置标签的文字
设置整个标签的水平对齐方式 设置整个标签的垂直对齐方式 设置整个标签中文字的水平对齐方式
void setVerticalTextPosition(int ps)
设置整个标签中文字的垂直对齐方式
标签
标签主要的作用是对别的控件进行描述或说明,用户不能 直接指定、编辑和修改他们,但也可以有条件地通过其他 控件完成的输入作出响应。 标签不仅可以显示文本,而且可以显示图标、对齐方式, 或者同时显示。 icon= new ImageIcon("images\\clickPic.gif") alignment:SwingConstants.LEFT//对齐方式 标签一般只显示一行信息。 setToolTipText(String) //设置标签提示信息 例:
文本框和文本区____文本框
JTextField类的方法 JTextField() JTextField(int n) 功能说明 创建一个空的JTextField对象 创建一个有n个列宽的JTextField 对象
创建一个包含图标和文字初始状态为false 的按钮
按钮
例:label.java LabelAndButton.java
复选框和单选按钮
复选框由JCheckBox类派生,它提供“选中/未 选中”两种状态,单击时改变原来设置的状态 单选按钮由JRadioButton类派生,它是指一组 按钮中,用户只能选择其中一个按钮,当用户 选中时,此按钮为“选中”状态,其余按钮为 “未选中”状态。 注:在AWT中复选框CheckBox、单选按钮组 CheckboxGroup
复选框和单选按钮
•单选按钮的构造方法与此类似。
•JRadioButton只是创建了一个独立的单选按钮,但各个单 选按钮之间没有任何关系,需要创建一个ButtonGroup类对 象的按钮组group ,使用add()方法,将所有单选按钮添加 到按钮组中。 •注意:JRadioButton组件还需添加到相应容器中。
JLabel(String str) JLabel(String str,int alignment) JLabel(String st,Icon icon,int alignment) Icon getIcon() void setIcon(Icon icon) String getText()
同上,并指定它的水平排列方式
group.add(radios[i]);
container.add(radios[i]);
复选框和单选按钮
复选框和单选按钮的事件 事件由ItemEvent类派生,此类包含一个ITEM_STATE_CHANGE事 件。此类主要方法有: Object getItem()方法:告知用户是哪个选项的选中状态 发生过改变 int getStateChanged()方法:用户知道到底是选中哪个 选项 ItemListener 对象名.addItemListener(this); 其中对象为复选框或单选按钮,this为事件的监听者,并 且this对象的类要实现ItemListener接口。当事件发生时, 监听者会引用ItemListener类中的 itemStateChanged(ItemEvent e)方法响应对象状态的改 变。
注册事件对象给ItemListener对象
添加选项 获得指定下拉列表框的列表项 获得列表中的可选项数量 获得当前选择的项 设置选定的初始值
列表框
列表框由JList类派生的,与下拉列表框类似, 但是可以选择多项。
功能说明
JList方法
JList()
JList(Vector vect) JList(Object items)
按钮
Swing中所有按钮都是由AbstractButton类派生的。 AbstractButton类派生出两个组件:JButton和 JToggleButton类(单选按钮和复选框的基类)
AbstractButton方法 void addActionListener(ActionListener I) void addChangeListener(ActionListener I) Icon getIcon() void setSelectionIcon(Icon icon) String getText() void setText(String str) 功能说明 注册监听者的类对象 改变监听者的类对象 获得按钮的图标 设置按钮的图标 获得按钮上的文字 设置按钮的文字
JAVA程序设计