Java程序设计-图形用户界面
JAVA第四章课后习题解答
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(5); btn1=new Button("+"); btn2=new Button("-"); btn3=new Button("*"); btn4=new Button("÷");
public class Test4_9 extends Frame implements ActionListener{ Button btn; public Test4_9(){ super("弹出窗口练习"); setSize(300,200);
5
setVisible(true); setLayout(new BorderLayout());
TextField txtFl1,txtFl2,txtFl3;
2
Button btn; public Test4_6(){
super("简单加法运算器"); setSize(300,200); setVisible(true); setLayout(new FlowLayout());
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(10); btn=new Button("=");
图形用户界面编程
图形用户界面编程汇报人:2024-01-05•图形用户界面编程概述•图形用户界面编程的核心概念•常见图形用户界面编程语言与框架目录•图形用户界面编程的最佳实践•图形用户界面编程的挑战与解决方案•图形用户界面编程案例研究01图形用户界面编程概述定义与特点定义图形用户界面(GUI)编程是一种软件开发技术,它使用图形界面元素(如按钮、菜单、文本框等)来创建用户界面。
特点GUI编程具有直观性、易用性和美观性等特点,使用户能够通过简单的操作完成复杂的任务。
提高用户体验良好的GUI设计能够使用户更加轻松地使用软件,提高用户体验和满意度。
增强软件竞争力优秀的GUI设计能够使软件在市场上更具竞争力,吸引更多用户。
降低软件学习成本直观易用的GUI可以帮助用户更快地掌握软件的使用方法,降低学习成本。
图形用户界面编程的重要性030201图形用户界面编程的历史与发展历史GUI编程起源于20世纪70年代,随着计算机技术的发展而不断完善。
发展现代GUI编程技术已经非常成熟,出现了许多优秀的GUI开发工具和框架,如Qt、GTK+、wxWidgets等。
同时,随着移动互联网的普及,移动端的GUI开发也变得越来越重要。
未来,随着虚拟现实、增强现实等技术的普及,GUI编程将进一步发展,为用户提供更加丰富和多样化的交互体验。
02图形用户界面编程的核心概念事件驱动编程是一种编程范式,程序运行由一系列事件触发,每个事件对应一个特定的操作或行为。
在图形用户界面编程中,事件可能包括鼠标点击、键盘输入、窗口大小调整等。
事件驱动编程允许程序响应用户交互,提高了程序的交互性和响应性。
通过事件处理程序,程序能够根据不同的事件做出相应的处理和反馈。
事件驱动编程控件与组件控件与组件是图形用户界面编程中的基本元素,用于构建用户界面和实现交互功能。
控件通常指具有特定功能的界面元素,如按钮、文本框、列表框等。
组件是更底层、更通用的界面元素,可以组合成控件。
通过使用控件和组件,程序员可以快速构建出丰富多样的用户界面。
java图形用户界面设计教程
第4章图形用户界面设计本章要点● Java图形用户界面设计的基本知识●布局管理器的应用● Java常用图形用界面设计组件的应用● Java常用组件事件处理的应用4.1 认识AWT包和Swing包用户界面是计算机用户与软件之间的交互接口。
一个功能完善,使用方便的用户界面可以使软件的操作更加简单,使用户与程序之间的交互更加有效。
因此图形用户界面(graphics user interface,GUI)的设计和开发已经成为软件开发中的一项重要的工作。
Java语言提供的开发图形用户界面(GUI)的功能包括AWT(Abstract Window Toolkit)和Swing两部分。
这两部分功能由Java的两个包来完成-awt和swing。
虽然这两个包都是用于图形用户界面的开发,但是它们不是同时被开发出来了。
awt包是最早被开发出来的。
但是使用awt包开发出来的图形用户界面并不完美,在使用上非常的不灵活。
比如awt包所包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。
这种设计是站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。
这样做的最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。
由于awt包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开发出了Swing,即swing包。
但是,SUN公司并没有让swing包完成替代awt包,而是让这两个包共同存在,互取所需。
awt包虽然存在缺点,但是仍然有可用之处,比如在图形用户界面中用到的布局管理器、事件处理等依然采用的是awt包的内容。
Java有两个主要类库分别是Java包和Javax包。
在Java包中存放的是Java语言的核心包。
Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。
swing包由于是对awt包的扩展和优化,所以是存放在Javax包下的,而awt包是存放在Java包下的。
Java图形用户界面设计
13
(3) 事件监听器(Listener) 事件处理机制中的核心部分,主要的功能大致可以分为 两部分:第一,监听组件,观察组件有没有发生某类事 件;第二,如果监听的组件发生了某类事件,则调用对 应的动作处理方法立刻处理这个事件。 在Java事件处理机制中,监听器处于主体地位。与事件 分类对应,监听器也相应的分成若干种类型,例如,鼠 标事件对应鼠标监听器,键盘事件对应键盘监听器,窗 口事件对应窗口监听器等。
25
5.3.2 AWT组件库常用组件举例 【问题1】 在窗口f中,有一个文本框tf,三个按钮btn_1、 btn_2、btn_3。当使用鼠标点击btn_1时,文本框显示 btn_1按钮被点击,当使用鼠标点击btn_2按钮时,文本框 显示btn_2按钮被点击,当使用鼠标点击btn_3按钮或者窗 口f的关闭按钮时,窗口关闭,程序退出。
(4) Choice Choice表示下拉选择框组件,选择框中的每一个选项称 为一个Item,Item的类型一般为String字符串。 (5) Label Label表示标签组件,主要作用在于创建提示性的文本。
23
(6) MenuBar、Menu和MenuItem MenuBar表示菜单条组件,该组件由Menu菜单构成,而 Menu菜单又可由Menu菜单和MenuItem菜单项构成。 (7) TextField TextField表示文本框组件,与文本域组件不同的是, 文本框中只能有一行文本。 (8) TextArea TextArea表示文本域组件,可以容纳多行文本。
30
(3) JRadioButton和ButtonGroup 在Swing中与Checkbox对应的是JCheckBox,实际使用时, 如果需要创建单选框组的话,经常使用的是 JRadioButton而非JCheckBox。如果将多个JRadioButton 组件放在一个ButtonGroup中时,这些JRadioButton组件 将不再具有复选功能,而是只具有单选功能,也即变成 单选框。 (4) JComboBox JcomboBox对应于AWT中的Choice,表示下拉选择框组件, 选择框中的每一个选项称为一个Item,Item的类型一般 为String字符串,也可以是指定的泛型类型。
Java语言程序设计:第十章 Java图形用户界面
t}ryesflrs{eaetmD{teer.fypaau{cltkC(l)o; seOperation(EXIT_ON_CLOSE);
选中“ToGoelnUyke}DsiItrMt.caiegmtjefaebreamxtaeIcHtncnmDnLheeaistoea}ep((gidf)oE.ctae;veinkxoaurarAc单.ntcllsstcieo.dTnc击ephmpoardrtetmotLi(i“FneoeEleokte(nnFnS)xoieiSttl”ec(te;kla)}iC”exzA.cgceplkneaetT=dtipsoS“rFtsanicoSNecrnaeeeav)(exlem(){nc;ASeellp”(iz)t)ei保;o()n存;)源{ 文U件I和M工an程a文g件er.getS
边
有间距
CENTER
的 East
组 容se器tHgap(int hgap)
件
setVgap(int vgap)
组
将组件间的水平间距设置为指定的值
件
将组件间的垂直间距设置为指定的值
下边的组件
South
天津职业技术师范大学
BorderLayout
…… class testFrame extends JFrame {
天津职业技术师范大学
BorderLayout
North
左
边 West 的
组 容器
件
上边的组件 CENTER
下边的组件
South
右 边 的 East 组 件
天津职业技术师范大学
BorderLayout
North
方法
左 BorderLay边out( )
West 的
第9章 图形用户界面
Java语言程序设计
第9章 图形用户界面
9.1 GUI概述
Java语言程序设计
第9章 图形用户界面
9.1 GUI概述
ponent类是许多组件类(如Button、Label)的父类,Component类中封装了组件通用的方法和 属性,如图形的组件对象、大小、显示位置、前景色、背景色、边界、可见性等,因此许多组件也继承了 Component类的成员方法和成员变量,这些成员方法是许多组件共有的方法,Component类常见的成员方法 如表9-1所示。
Java语言程序设计
第9章 图形用户界面
9.1 GUI概述
Java应用程序的图形用户界面(GUI)是通过Java API提供的java.awt或javax.swing包中的组件实现的。 这些组件所构成的GUI系统通常包含以下几个部分: (1)基本的图形用户界面组件:如菜单、按钮、文本字段等,展示系统可用的操作; (2)容器组件,如窗口、面板等,用于容纳基本组件; (3)布局管理组件,负责容器中组件的布局,进一步美化图形用户界面; (4)事件处理,用户通过图形界面进行操作时,会引发相应的事件,这些事件由一些特定的图形用户 界面组件监听并处理。 Java的java.awt和javax.swing包中包含了许多有关图形界面的类,AWT(Abstract Window Toolkit),中文译 为抽象窗口工具包,是一组Java类,此组java类允许创建图形用户界面,AWT提供用于创建生动而高效 的GUI的各种组件。Swing组件是在AWT组件基础上发展起来的新型GUI组件,完善了GUI组件的功能, 且实现时不包含依赖特定平台的代码,有更高的平台无关性和更好的移植性。因此本章主要介绍Swing 组件的用法,学习了Swing组件的用法后也可容易地学会AWT组件的用法。
Java程序设计:第八章 Swing图形界面程序设计
原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小
深入浅出java swing程序设计-概述说明以及解释
深入浅出java swing程序设计-概述说明以及解释1.引言1.1 概述Java Swing是一种用于构建图形用户界面(Graphical User Interface,简称GUI)的Java库。
它为开发人员提供了丰富的组件和布局管理器,可以轻松创建具有各种功能和样式的交互式应用程序。
Java Swing的出现填补了Java原生GUI工具包的不足,为开发人员提供了更多的自定义和灵活性。
与AWT(Abstract Window Toolkit)相比,Swing提供了更多的组件和界面控件,同时具备更好的跨平台性。
Java Swing不仅仅是一个图形用户界面库,它还提供了一整套用于处理用户输入、图形绘制、多媒体展示等功能的类和工具。
开发人员可以利用这些工具快速构建具有丰富交互性的应用程序。
本文将深入浅出地介绍Java Swing程序设计的基本概念和技巧。
我们将从Swing的组件和布局开始,逐步展示如何创建简单且功能强大的用户界面。
通过学习本文,读者将能够掌握Java Swing的核心知识,并能够利用这些知识开发出符合自己需求的应用程序。
本文的目的是帮助读者快速上手Java Swing,了解其基本概念和使用方法。
同时,我们也将展望Java Swing的未来发展,探讨其在现代应用程序开发中的重要性和应用前景。
在接下来的正文部分,我们将详细介绍Java Swing的基本概念,包括组件、事件、布局等内容。
同时,我们还将给出一些实际的例子,以便读者更好地理解和应用所学知识。
总之,本文将从大纲所列的各个方面对Java Swing进行深入浅出的探讨,旨在帮助读者全面了解和掌握Java Swing程序设计的基本技巧和应用方法。
希望读者能够通过本文的学习,具备自主开发Java Swing应用程序的能力,并能在实际项目中灵活应用所学知识。
1.2 文章结构本文主要以深入浅出的方式介绍Java Swing程序设计。
文章分为引言、正文和结论三个部分,每个部分有相应的小节。
第9章Java Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社
9.1 Java Swing概述 9.2 JFrame窗口 9.3布局管理器 9.4 常用控件 9.5事件处理机制 9.6 JDialog对话框 9.7 应用实例:打地鼠小游戏
通过GUI(Graphic User Interface,图形用户界 面),用户与程序之间可以方便地进行交互。Java 的java.awt包,即Java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI 的组件类。Java早起进行用户界面设计时,主要使 用java.awt包提供的类,如Button(按钮)、 TextField(文本框)和List(列表)等。JDK1.2 推出后,增加了一个新的javax.swing包,该包提 供了功能更为强大的用来设计GUI的类。
Javax.swing包提供了Box类,该类也是Container
类的一个子类,创建的容器称为一个盒式容器,盒 式容器的默认布局是盒式布局,而且不允许更改盒 式容器的布局。因此,在策划程序的布局时,可以 利用容器的嵌套,将摸个容器嵌入几个盒式ng中提供了一个更加强大的布 局——弹簧布局SpringLayout。利用该布局管理器
管理组件,当改变窗体的大小时,能够在不改变组 件间相对位置的前提下自动调整组件的大小。
9.4.1 标签JLable 9.4.2 文本框JTextField 9.4.3 按钮JButton 9.4.4 菜单JMenu 9.4.5文本区JTextArea 9.4.6下拉列表JList 9.4.7表格JTable 9.4.8 树JTree
Public void keyTyped(KeyEvent),键盘按键被输入 事件。
无论用户界面设计的如何美观别致,最重要的一点 是知道这些组件能做什么,如单击一个“打开文件” 按钮,我们希望打开的是文件对话框,而不希望程 序没有任何响应。Java提供了事件模型,使Swing
Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料
7
9.1 Swing 简介
9.1.1 窗体组件 JFrame 9.1.2 对话框组件 JDialog 9.1.3 对话框组件 JOptionPane 9.1.4 中间容器 JPanel 与 JscrollPane 9.1.5 标签组件 JLabel 9.1.6 文本组件 JTextField 与JTextArea
5
✓Swing包在图形界面设计上比AWT更丰富,更美观。Swing 拥有4倍于AWT的用户界面组件。 ✓是AWT包基础上的扩展,在很多情况下在AWT包的部件前 加上字母J即为Swing组件的名称,如:JFrame、JApplet、 JButton等。 ✓Swing组件都是AWT的Container类的直接子类或间接子类 。
17
9.1.3 对话框组件 JOptionPane
使用上面介绍的 JDialog 可以制作消息提示对话框、确定取消对话框等常用的对话框,但相 对来说要花费一些心思才能做出来,而 JOptionPane 组件直接提供了创建上述几种常用的对 话框的方法,大大方便了编程。 1.showMessageDialog()的静态方法弹出消息对话框,显示一条消息并等待用户确定。常用 的重载方法如下。
4、设置窗体的位置。setLocationRelativeTo(Component c):设置 窗体的相对位置。如果参数为 null,则窗体在屏幕中居中对齐。
5、如果希望在关闭窗体后程序可以随之停止,需要调用方法 setDefaultClose Operation()并传入参数 JFrame.EXIT_ON_CLOSE, 这句代码设置了关闭窗体后会停止程序的运行。 此外还有其他 3 个参数,简述如下。
口");。 2)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。
图形用户界面设计
【例】测试Button类的Applet。用户界面如图1所示。源程 序代码如下:
//程序文件名UseButton.java import java.awt.*; import java.applet.*; public class UseButton extends Applet {
String str1 = new String(); //声明按钮对象 Button b1; Button b2;
14
public void init() {
//构造对象 b1 = new Button(); b2 = new Button("按钮对象2"); //添加到界面 this.add(b1); this.add(b2); } public void start() {
15
b1.setLabel("按钮对象1"); str1 = b2.getLabel(); repaint(); } public void paint(Graphics g) { g.drawString("获取第二个对象的标签:" + str1,20,30); } }
String str1 = new String(); boolean b1 = false; boolean b2 = false;
23
Checkbox c1,c2,c3; Checkbox cRadio1,cRadio2; CheckboxGroup c; public void init() {
第五章 图形用户界面设计
1. 概述 2. 基本控制组件 3. 事件处理 4. 布局设计 5. 常用容器组件
1
概述
• 用户界面(User Interface) • 用户与计算机系统(各种程序)交互的接口
java图形界面设计含答案
java图形界面设计含答案十一章图形用户界面程序设计入门一.选择题:1. 容器Panel和applet缺省使用的布局编辑策略是 BA、BorderLayoutB、FlowLayoutC、GridLayoutD、CarLayout2. .applet类的直接父类是: BA、Component类B、Container类C、Frame类D、Panel类3. .Swing与AWT的区别不包括 DA、Swing是由纯Java实现的轻量级构件B、Swing没有本地代码C、Swing不依赖操作系统的支持D、Swing支持图形用户界面4. 在编写Java applet程序时,若需要对发生事件作出响应和处理,一般需要在程序的开头写上 B _语句。
A、import java.awt.*;B、import java.applet.*;C、import java.io.*;D、import java.awt.event.*;5. 下面哪个操作是applet可以做的? BA、读取客户端部分系统变量B、读取客户端文件C、在客户端主机上创建新文件D、在客户端装载程序库6. 在Java中,所有类的根类是 AA./doc/302358554.html,ng.Object B./doc/302358554.html,ng.ClassC.java.applet.Applet D.java.awt.Frame7.在JAVA中实现图形用户界面可以使用组建AWT和组件 AA、swingB、SwingC、JOptionPaneD、import8.在JAVA中,一般菜单格式包含有下列类对象 DA、JMenuBarB、JMenuC、JMenuItemD、JMenuBar、JMenu、JMenuItem9.JAVA中提供了多种布局对象类。
其中使用卡片式布局的是 DA、FlowLayoutB、BoederLayoutC、BoxLayoutD、CardLayout10. 下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数11 与Applet生命周期相关的方法的数量是 AA、4种B、3种C、2种D、5种12下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数13 java中对Applet设置了严格的安全限制。
Java实用教程 第11章 AWT图形用户界面编程
fr.add(p1, BorderLayout.NORTH);
// 将p1添加到窗口NORTH区域(即顶部)
Panel p2 = new Panel();
// 创建面板p2
p2.setLayout(new GridLayout(4, 5, 3, 3));
// 设置p2使用GridLayout布局
String[] name = {"7", "8", "9", "÷", "√", "4", "5", "6", "×", "%"
AWT容器
Window和Frame
Window和Frame
Window有两个子类:Frame和Dialog。Frame带有标题,而且可以调整大小。Dialog可以被移动, 但是不能改变大小。Frame有一个构造方法Frame(String title),通过它可以创建一个以参数为标题 的Frame对象。Frame的add()方法向容器中加入其他组件。Frame被创建后是不可见的,必须通过 以下步骤使它成为可见。
setLocation()、setSize()或setBounds() 方法,为它们在容器中一一定位。
布局管理器
1.流式布局管理器
FlowLayout是把组件从左向右、从上向下,一个接一个地放到容器中,组件之间的默认间隔 (水平和垂直)为5个像素,对齐方式为居中。组件的大小由布局管理器根据组件的最佳尺寸 来决定。 FlowLayout的构造方法:
, "1", "2", "3", "-", "1/x", "0", ".", "C", "+", "±"};
图形用户界面设计
中间容器(Jpanel)
1. 将组件添加到JFrame中 2. JPanel的使用
30
1、 将组件添加到JFrame中
方式之一: frame.getContentPane().add(childCom
ponent) 用getContentPane()方法获得JFrame的
内容面板,再对其加入组件,一般只使 用该方式添加组件。
Swing 是为了解决 AWT 存在的问题而 新开发的包,它以 AWT 为基础的。
10
上图列举了AWT和 Swing的关系,也可 以看出Swing是继承自AWT的。主要利 用Swing来设计图形化界面程序。
11
图形化界面设计—容器
1. Java基本类(JFC) 2. AWT和Swing的区别 3. Swing基本框架 4. 图形化设计步骤 5. 组件容器的使用
54
实例:
55
实例:
56
实例二:在中间位置中添加9个按钮
57
58
布局管理器之GRIDLAYOUT(网 格布局)
59
网格布局特点:
使容器中的各组件呈M行×N列的网格状分布。 网格每列宽度相同,等于容器的宽度除以网格
的列数。 网格每行高度相同,等于容器的高度除以网格
的行数。 各组件的排列方式为:从上到下,从左到右。 组件放入容器的次序决定了它在容器中的位置。 l容器大小改变时,组件的相对位置不变,大小
图形用户界面设计
1
Java图形化界面设计——容器 (JFrame)
2
程序是为了方便用户使用的,因此实现 图形化界面的程序编写是所有编程语言 发展的必然趋势,在命令提示符下运行 的程序可以让我们了解java程序的基本 知识体系结构,现在就进入java图形化 界面编程。
JAVA图形用户界面的设计与实现PPT课件
Applet Frame Dialog FileDialog
容器
组件名
26
Component 类的常用方法 public void add (PopupMenu popup):在组件上加上一个弹出菜单。 public Color getBackground ( ): 获得组件的背景色。 public Font getFont ( ):获得组件使用的字体。 public Color getForeground ( ):获得组件的前景色。 public Graphics getGraphics( ):获得绘图用的 Graphics 对象。 public void repaint ( int x, int y, int width, int height ):以指点的坐标点
只能用做容器组件加入其他容器。 3)通常用于层次化界面组件管理。
P260:例 7-20 TestPanel . java
❖ 例子:ch7\src\MyFrame.java
6
组件
组件:图形用户界面的最小单元,用来完成与用户的交互;
用户界面标准化的结果,例如:标签、文本框、按钮、菜单 等。
使用组件的步骤: 1)创建组件类的对象,指定其属性; 2)使用某种布局策略; 3)将组件对象注册给对应的事件监听器,覆盖事件处理方
Java 支持的图像文件格式包括bmp,gif,jpeg 等。
16
二、绘制图像:
drawImage( Image img, int x, int y, ImageObserver observer ) 有4个 参数:图像的 Image 对象,显示图像的左 上角 x、y 坐标,显示图像的容器对象。如:
来接收和处理这种事件。 ❖ 如果一个事件源注册了对应的监听者,那么
Java-GUI编程
Java-GUI编程GUI全称是Graphical User Interface,即图形⽤户界⾯。
顾名思义,就是应⽤程序提供给⽤户操作的图形界⾯,包括窗⼝、菜单、按钮、⼯具栏和其他各种图形界⾯元素。
⽬前,图形⽤户界⾯已经成为⼀种趋势,⼏乎所有的程序设计语⾔都提供了GUI设计功能。
Java中针对GUI 设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和Swing。
AWT是⽤于创建图形⽤户界⾯的⼀个⼯具包,它提供了⼀系列⽤于实现图形界⾯的组件,如窗⼝、按钮、⽂本框、对话框等。
如下图:其中,Component类通常被称为组件,根据Component的不同作⽤,可将其分为基本组件类和容器类。
⽽容器类则是通过Component的⼦类Container实例化的对象。
Container类表⽰容器,它是⼀种特殊的组件,可以⽤来容纳其他组件。
1、FrameFrame相当于⼀个⼤的框架,再它⾥⾯可以放多个组件、多个⾯版。
它是相对于了window界⾯来说的。
//创建⼀个Frame实例对象:Frame frame = new Frame("This is my first FrameTest");//设置界⾯可见:frame.setVisible(true);//设置窗⼝⼤⼩:frame.setSize(500,500);//设置背景颜⾊:frame.setBackground(Color.orange);//设置弹出初始位置:frame.setLocation(500,500);//设置界⾯⼤⼩固定:frame.setResizable(false);2、PanelPanel也是⼀个容器,但是它不能单独存在,只能存在其他容器(Window或其⼦类)中,⼀个Panel对象代表了⼀个长⽅形的区域,在这个区域中可以容纳其他组件。
在程序中通常会使⽤Panel来实现⼀些特殊的布局。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组件 可在构造方法中设置不同的组件间距、 行距及对齐方式
FlowLayout 举例
范例:
TestFlowLayout.java
FlowLayout 的构造方法
new FlowLayout(FlowLayout.RIGHT,20,40); 右对齐,组件之间水平间距20个像素,竖直间距40个像素;
类库 。功能更强,界面更富。各种平台上更统一。
• 设计和实现图形用户界面的工作主要有以下几点。 • (1)创建组件(Component):
– 创建组成界面的各种元素,如按钮、文本框等。
• (2)指定布局(Layout):
– 根据具体需要排列它们的位置关系。
• (3)响应事件(Event):
– 定义图形用户界面的事件和各界面元素对不同事件的响应, 从而 实现图形用户界面与用户的交互功能。
2 布局管理
• Java.awt包中共定义了五种布局管理器,每个布局管理器 对应一种布局策略,分别是
– FlowLayout – BorderLayout – CardLayout – GridLayout – GridBagLayout。
•
FlowLayout布局管理器
FlowLayout是Panel类的默认布局管理器 FlowLayout布局对组件逐行定位,行内从
注意:在一张卡片中只能显示一个组件,因此可以使 用容器嵌套方法显示多个组件。 addLayoutComponent, first, next, last方法
* GridBagLayout 布局管理器
AWT中最灵活、最复杂的布局管理器,各组件所占空 间可以不相同且灵活规定,参见参考书及API文档;
North
Center
South
Eest West
BorderLayout举例
范例:
estBorderLayout.java
GridLayout 布局管理器
GridLayout型布局管理器将布局划分成规 则的矩形网格,每个单元格区域大小相等.
组件被添加到每个单元格中,先从左到 右添满一行后换行,再从上到下.
5 绘图、图形和动画
• 5.1 绘制图形
– 绘制图形和文字将要用类Graphics。它相当于组件的绘图环境, 利用它可以进行各种绘图操作。
– 获得Graphics对象常有两种方法
• 一是使用组件的getGraphics()方法来 • 在Applet及Application程序中,常用Canvas及Applet对象来进行绘
• 画椭圆 drawOval(int x, int y, int width, int height)
• 画多边形
drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
Java程序设计
图形用户界面
1 AWT组件
• 1.1 图形用户界面概述 • 图形用户界面(graphical user interface,GUI) • 处理图形用户界面的类库主要是java.awt包和
javax.swing包。 • AWT是abstract window toolkit(抽象窗口工具集)的缩写。 • javax.swing包是JDK1.2以后版本所引入的图形用户界面
些空的方法体。
3.4 内部类及匿名类在事件处理中的应 用
• 在Java事件处理程序中,由于与事件相关的事件监听器的 类经常局限于一个类的内部,所以经常使用内部类。而且 定义的内部类在事件处理中的使用就实例化一次(在其他 地方不会用到该类,所以不需要类名),所以经常使用匿 名类。
• 在类的内部定义事件类:
Panel
– Panel无法单独显示,必须添加到某个容器中。 – Panel的缺省布局管理器为FlowLayout。 – 当把Panel作为一个组件添加到某个容器中后,该Panel仍然可以
有自己的布局管理器。因此,可以利用Panel使得BorderLayout 中某个区域显示多个组件。
布局管理器总结(2)
• 一个对象上可注册多个监听器 • 多个对象可注册同一个监听器
3.3 事件适配器
• 用实现接口的方法,必须实现接口所规定的方法,如WindowListener 有7个方法,即使一些方法不做任何事情,也得书写。
• 为简化编程,针对一些事件监听器接口定义了相应的实现类——事件 适配器类(Adapter),在适配器类中,实现了相应监听器接口中所 有的方法,但不做任何事情。
•
public void windowClosing( WindowEvent e ){
•
System.exit(0);
•
}
• });
• 其中用匿名类实现了MouseMotionListener及继承了WindowAdapter, 同时实例化了这个匿名类的对象
4 常用组件的使用
• 4.1 标签、按钮与动作事件 • 4.2 文本框、文本区域与文本事件 • 4.3 单、复选按钮,列表与选择事件 • 4.4 调整事件与滚动条 • 4.5 鼠标、键盘事件与画布 • 4.6 Frame与窗口事件 • 4.7 Panel与容器事件 • 4.8 组件事件、焦点事件与对话框 • 参见相应的例子
• (1)事件源(即产生事件的组件),可能通过 getSource()来得到;
• (2)事件的具体情况,如MouseEvent的getX(), getY() 方法得到鼠标的坐标,KeyEvent的getKeyChar()得到当前 的字符等。
2.事件处理器WTEventListener
• 事件处理器(Event handler)是对事件进行处理的程序, 在编程时通过实现事件监听器(Event Listener)来实现 对事件的处理。
• 事件监听器是一些事件的接口,这些接口是 java.awt.AWTEventListener的子类。接口中含有相关的 方法,如:MouseMotionListener是对鼠标移动事件的处 理的接口,它含有两个重要的方法:
– void mouseDragged(MouseEvent e);// 处理鼠标拖动的方法 – void mouseMoved(MouseEvent e);// 处理鼠标移动的方法
– private class InnerMonitor implements MouseMotionListener,MouseListener { …}
使用匿名类的例子
• f.addMouseMotionListener(new MouseMotionListener(){
•
public void mouseDragged(MouseEvent e) {
容器的嵌套使用举例
范例:
NestedContainer.java
默认布局管理器
Component Container
Window
Frame
Dialog
Panel Applet
BorderLayou t
FlowLayout
布局管理器总结(1)
Frame
– Frame是一个顶级窗口。 – Frame的缺省布局管理器为BorderLayout。
• 在这些方法中,都带一个事件对象作为参数,如 MouseMotionListener的两个方法都带MouseEvent参数。 程序中可以根据这个参数可以得到有关事件的详细信息。
3.2 事件监听器的注册
• 注册事件监听器只需要使用组件对象的 addXXXXEvent方 法,它可以指明该对象感兴趣的事件监听器(即实现了某 个AWTEventListener子接口的对象)。这样,当事件源发 生了某种类型的事件时,则触发事先已注册过的监听器中 相应的处理程序。
图。 它们的paint()方法也会带一个Graphics参数,通过覆盖paint() 方法,就可以绘制各种图形。
Graphics的绘图方法
• 画三维矩形
draw3DRect(int x, int y, int width, int height, boolean raised)
• 画弧 drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
北、中五个区域,组件只能被添加到指定的区域 如不指定组件的加入部位,则默认加入到Center区域 每个区域只能加入一个组件,如加入多个,则先前加
入的组件会被遗弃
BorderLayout 布局管理器
BorderLayout型布局容器尺寸缩放原则
–ห้องสมุดไป่ตู้北、南两个区域只能在水平方向缩放(宽度可调整) – 东、西两个区域只能在垂直方向缩放(高度可调整) – 中部可在两个方向上缩放
• 事件适配器包括如下几种: • (1)ComponentAdapter(组件适配器); • (2)ContainerAdapter(容器适配器); • (3)FocusAdapter(焦点适配器); • (4)KeyAdapter(键盘适配器); • (5)MouseAdapter(鼠标适配器); • (6)MouseMotionAdapter(鼠标运动适配器); • (7)WindowAdapter(窗口适配器)。 • 程序中可以继承事件适配器类,并只重写所需要的方法,而不用写那
1.2 AWT组件分类
• Java中构成图形用户界面的各种元素,称为组件 (Component)。
• 组件分为容器(Container)类和非容器类组件两大类 • 容器又分为顶层容器和非顶层容器两大类
重要的组件的继承关系
1.3 Component的方法
• Component类是所有组件和容器的抽象父类,其中定义了 一些每个容器和组件都可能用到的方法