第六章 Java图形界面
Java的形化界面开发选择合适的框架与工具
Java的形化界面开发选择合适的框架与工具Java的图形界面开发选择合适的框架与工具Java是一种跨平台的编程语言,广泛应用于软件开发领域。
在图形界面开发方面,Java提供了多个框架与工具,开发者可以根据自身需求选择合适的组件和工具来进行开发。
本文将介绍几个常用的Java图形界面开发框架与工具,并分析它们的优势和适用范围。
一、Swing框架Swing是Java平台提供的主要图形界面开发框架之一。
它基于Java的AWT(Abstract Window Toolkit)框架,提供了丰富的GUI组件和强大的事件处理机制。
Swing具有良好的跨平台性能和灵活的可定制性,适用于开发各种类型的桌面应用程序。
Swing框架提供了一系列面向对象的GUI组件,如按钮、标签、文本框、表格等,开发者可以通过组合这些组件来构建复杂的用户界面。
此外,Swing还支持图形渲染、国际化和可访问性等功能,使得应用程序更加美观、易用和易于维护。
二、JavaFX框架JavaFX是Java平台的另一个重要图形界面开发框架。
它是在Java SE 8及其之后版本中引入的,作为Swing的继任者。
JavaFX框架提供了现代化的UI组件和丰富的动画效果,支持CSS样式表和FXML布局文件,极大地简化了界面设计和开发流程。
JavaFX具有良好的性能和优秀的渲染效果,在图形处理、媒体播放和界面布局等方面有着卓越的表现。
它的线程模型也更加灵活,能够实现响应式的用户界面设计。
三、AWT框架AWT是Java最早引入的图形界面开发框架。
它是使用本地窗口系统提供的原生组件,因此在外观和行为上与操作系统保持一致。
AWT 提供了一系列基本的GUI组件,如按钮、标签、文本框等,可以通过AWT的布局管理器来进行界面排版。
尽管AWT能够提供与操作系统一致的外观,但它的定制性和可扩展性相对较差。
另外,AWT的组件在跨平台上的兼容性也有一定的问题。
因此,在现代的Java应用程序开发中,AWT的使用相对较少,主要用于一些特定场景或需要与底层系统交互的应用。
解析JAVA程序设计第六章课后答案
第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。
对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。
2.试说明容器与组件之间的关系。
组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。
容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。
3.阅读下面程序,说明其运行结果和功能。
//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。
//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。
Java第06章--1(AWT与Swing)
• • 视图(view):它专门负责组件的绘制工作,主要涉及 paint()方法。MVC设计范式的最大优点是一个模型可以 有多个视图,每个视图是一个不同侧面但内容却是完整的。 • 一个模型的几个视图都是从不同侧面、用完整的内容来描 述同一个模型。当模型的控制器要修改其内容时,均会通 知这每个视图,它们都会自动地更新自己的视图显示。 • • 控制器(controller):专门负责管理和处理组件所接 收到的事件,这些事件可能来自用户的操作。如键盘输入、 鼠标点击和拖放等,也可能来自系统,如系统计时器发出 的事件。 • 视图和其控制器之间的通信不仅频繁且非常复杂,因此 JFC系统把两者封装成一个整体。
• • 模型(model):模型负责获取和管理组件的状态,用户若 需要询问组件的状态时,实际上是询问该组件的模型。 • 若要询问Swing型按钮组件(JButton 类的一个对象)的状 态,可调用JButton 类的父类javax.swing.AbstractButton所 提供的isSelected()方法,它定义为: – public boolean isSelected() { ... } – 该方法返回一个逻辑值,若为true则该按钮组件被压下,反 之返回false则按钮是松开状态。 • javax.swing包中的各种组件,对于描述该组件状态和内容的 模 型 都 是 用 以 Model 结 尾 的 接 口 实 现 , 例 如 , 对 于 按 钮 在 javax.swing包中有一个如下定义的接口: – public interface ButtonModel extends ItemSelectable { ... } • 每个JButton类的对象都保存着一个表示该按钮组件模型的对 象,调用其父类AbstractButton的方法就可以得到它,即: – JButton b = new JButton( "确定" );
java图形界面设置教程
Java实例——(续)
setSize(300,200); bl.setText(“欢迎使用Java语言”); bl.setBounds(50,50,150,20); bl.setAlignment(Label.CENTER); bl.setBackground(Color.blue); bl.setForeground(Color.red); add(bl); setVisible(true); } public static void main(String args[]){ new Label1(); } }
简单GUI程序
1.引用需要的包和类。 2.设置一个顶层的容器。 3.根据需要为容器设置布局管理器或使用默认布 局管理器。 4.将组件添加到容器内。 5.为响应事件的组件编写事件处理代码。
建立窗口Frame类的操作
创建窗口的基本和必要操作包括以下方面:
1.设置窗口的大小。 2.设置窗口的标题。 3.确定窗口在屏幕的放置位置。 4.显示窗口。 5.关闭窗口。
window事件及其响应每一个事件类都有一个唯一的事件处理方法接口如处理鼠标事件mousee钮actionevent事件类的对应接口为actionlistener接监听者向事件源注册使监听者能够监听到并处理事件源产生的事件如actionevent事件实现其接口actionlistener
Java实例——(续)
but.setBounds(50,50,100,50); but.addActionListener(fra); fra.add(but,BorderLayout.CENTER); fra.setVisible(true); } public void actionPerformed(ActionEvent e){ fra.setBackground(Color.red); } }
JAVA图形界面各种布局及使用方法
1.布局对于JFrame窗口,默认布局是BorderLayout布局。
对于JPanel,默认布局是FlowLayout布局。
容器可以使用方法:setLayout(布局对象);来设置自己的布局。
(1)FlowLayout布局FlowLayout类创建的对象称做FlowLayout型布局。
FlowLayout类的一个常用构造方法如下:FlowLayout()该构造方法可以创建一个居中对齐的布局对象。
例如:FlowLayout flow=new FlowLayout();如果一个容器con使用这个布局对象:con.setLayout(flow);那么,con可以使用Container类提供的add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列。
FlowLayout布局对象调用flow.setAlignment(FlowLayout.LEFT);来设置组件靠左对齐FlowLayout布局对象调用setHgap(int hgap) 方法和setVgap(int vgap)可以重新设置布局的水平间隙和垂直间隙。
(2)BorderLayout布局BorderLayout 布局是Window型容器的默认布局,例如JFrame、JDialog都是Window类的间接子类,它们的默认布局都是BorderLayout 布局。
容器使用BorderLayout 布局,那么容器空间简单地划分为东、西、南、北、中五个区域。
每加入一个组件都应该指明把这个组件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某个区域的组件将占据整个这个区域。
每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。
(3)CardLayout 布局使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。
Java程序设计第2版第六章.ppt
2020/4/6
1
通过本章的学习,主要掌握以下知识点:
类的基本概念 对象的创建与使用 对象的使用 成员的调用
本章的重点:
创建类
本章的难点:
类修饰符 成员数量与成员方法修饰符
2020/4/6
2
在前面的章节中,对Java的简单数据类型、 数组、运算符和表达式及流程控制的方法作了详细 的介绍。从本章开始将介绍面向对象的程序设计方 法。面向对象的编程思想是力图使在计算机语言中 对事物的描述与现实世界中该事物的本来面目尽可 能的一致。所以在面向对象的程序设计中, 类(Class)和对象(Object)是面向对象程序设计方 法中最核心概念。
• 例:
变量 name--鱼名称
color--鱼颜色 函数
setValue() --赋值 name、color
output()-- 显示 name、color
分别用“面向过程”、“面向对象” 编程思想实 现。
2020/4/6
5
1. 面向过程源程序: Fish.c
# include <stdio.h>
//属性变量color--描述鱼的颜色
void setValue (String n, String c ) //方法setValue :给成员变量赋值
{ name=n;
color=c;
}
void output( )
//方法output :显示成员变量
{ System.out.println (name); System.out.println (color);
char name[20]=“ ”; char color[20]=“ ”; main() { void setValue(char n[], char c[]);
JAVA复习题及答案
JAVA复习题及答案第一章JAV A概述1.JA VA中哪三种平台:J2ME(嵌入式平台),J2SE(标准平台),J2EE(企业级平台).2.JA VA从第几版称为JA V A2:JA V A 1.2版。
3.JA VA有否指针:无。
4.JA VA的API指的是什么:Application ProgrammingInterface,JA V A的类库。
5.JA V A平台无关性是如何实现的:通过编译生成与平台无关的代码──字节码,而不是通常的特定机器上的机器码,由平台上的Java虚拟机中的Java解释器解释执行。
6.JA VA有哪两种程序形式:Application和Applet程序。
7.Application程序运行时系统调用程序的哪个方法:main()方法。
Applet程序执行时系统自动调用程序的哪个方法:init()方法。
8.绘图程序中系统自动调用哪个方法:paint(Graphics g)方法。
9.JDK是什么:Java开发工具包(Java Development Kit )的缩写,包括JAVA类库、JAVA编译器、JAVA解释器、运行时环境、命令行工具。
10.有哪几种主要的可视化的集成源程序编辑环境:Eclipse,JCreator, JBuilder等。
11.安装JDK的可执行文件是:jdk-1_5_0-windows-i586.exe12.安装JDK帮助文档的是:jdk-1_5_0-doc.zip第二章JAV A语言基础13.保留字是什么意思,能否用于程序员定义自己的类、方法、变量等名字:JA V A中已定义的用于特定用途的标识符。
不能。
14.i++与++i有什么区别?15.写出各种转义字符?p17。
\t, \n, \r, \‖, \’, \\16.编程良好习惯中,对象名、包名、类名、变量名、常量名、接口名、方法名中的字符的大小写如何设置?Package –名词且小写;Class--名词且第一个字母大写;Interface—同Class;Methods-动词且第一个字母小写,分隔词第一个字母大写,不用‖-―;Variable—第一个字母小写,不用‖_‖,‖$‖(对于inner class有意义);Constants—大写并用‖_‖17.标识符的用途:用于给类、方法、变量、接口、程序块、对象等起名字。
信息技术第6章 软件开发练习题库(附答案)
第六章软件开发一、单项选择1.给定如下所示的JAVA代码,则运行时,会产生哪种类型的异常()String s = null;s.concat( "追加的字符串");A. ArithmeticExceptionB. NullPointerExceptionC. IOExceptionD. ClassNotFoundException参考答案:B答案解析:空值的字符串变量无法进行追加字符串运算。
A选项为数学运算异常;C选项为输入输出异常;D选项为未找到类定义的异常。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第二节 Web熟悉开发 4.了解Java编程。
2.为使得开发人员对软件产品的各阶段都进行周密的思考,从而减少返工,所以编制下列哪个文件是很重要的()A.需求说明B.概要说明C.软件开发文档D.测试大纲参考答案:C试题解析:软件开发文档是软件开发使用和维护过程中的必备资料。
它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第一节软件开发基础知识3.下列哪个文档属于软件开发人员为用户准备的有关该软件使用、操作、维护的资料()A.开发文档B.管理文档C.用户文档D.软件文档参考答案:C试题解析:用户文档可以帮助用户掌握相关软件的使用、操作及维护。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第一节软件开发基础知识4.关于中间件特点的描述,不正确的是()A.中间件可运行于多种硬件和操作系统平台上B.跨越网络、硬件、操作系统平台的应用或服务可通过中间件透明交互C.中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率D 中间件应支持标准的协议和接口参考答案:C试题解析:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
Java语言程序设计基础教程课件(第6章)
只能向滚动面板添加一个组件
构造方法
ScrollPane() ScrollPane(int a)
a的取值: 1)SCROLLBARS_ALWAYS 、
2)SCROLLBARS_AS_NEEDED、
3)SCROLLBARS_NEVER
P134【例6-3】使用ScrollPane容器
con.add(String s,Component b) con.add(Component b,String s)
card.show(con,s) card.first(con) st(con) card.previous(con) card.next(con)
Container(容器)的子类,属内层容器
在外层容器内部实现分块布局
默认布局是FlowLayout布局
常用方法同Frame
java.awt.ScrollPane类——滚动面板
P133 【例6-2】使用Panel容器
6.3.3 ScrollPane
java.awt.ScrollPane——滚动面板
但是它的主要功能是容纳其它组件和容器
容器通过add()方法向容器中添加组件。
有三种类型的常用容器:
Frame、 Panel、 ScrollPane。
6.3.1 Frame
Frame类是Container类的间接子类
可以向窗口添加组件
顶层容器,不容许被添加
默认布局是BorderLayout
方法说明
绘制组件
重绘组件 设置组件的大小和位置 设置组件可见性 设置鼠标指向组件时的光 标形状。 将变化后的界面显示出来 更新组件
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)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。
河南工业大学Java考试题库
判断题:第一章:1、CPU指的是运算器和CRT F×2、计算机与一般计算装置的本质区别是它具有存储程序和程序控制功能T*√3、在计算机中,控制器是执行算术运算和逻辑运算的部件,它的任务是对信息进行加工处理。
×4、程序在运行时发现的错误一般是程序语法上的错误。
√*5、第一代计算机时期没有操作系统。
√6、计算机中数值数据一般采用补码形式存储。
√7、利用Java语言可以开发客户端Java小程序和应用程序,以及独立的服务器应用程序等。
√8、Java2技术分为J2EE、J2SE和J2ME,其中J2SE是Java的企业版,用来针对企业级进行应用服务的开发。
×9、Java语言适合开发跨平台的应用程序。
√10、Java语言适合用来开发系统程序,像很多的操作系统及驱动程序都是用Java来编写的。
×11、Java源程序文件扩展名必须为.java,但文件名不必与(主)类名保持一致。
×12、Java的平台无关性主要是依靠JRE实现的。
×13、与Java应用程序(Application)不同,Java Applet程序的运行,需要得到客户端浏览器的支持。
√14、安装JDK时,需要配置环境变量path、classpath和JA V A_HOME。
√第三章:1、J2EE企业版是以企业为环境而开发应用程序的解决方案。
√2、J2ME小型版是致力于消费产品和嵌入式设备的最佳解决方案。
√3、J2SE标准版为桌面开发和低端商务应用提供了可行的解决方案。
√4、Java是区分大小写的语言,关键字的大小写不能搞错,如果把类class写成Class或者CLASS,都是错误的。
√5、Java源程序编写好之后,以文件的形式保存在硬盘或U盘上,源文件的名字可以随便取的,它不一定与程序的主类名一致。
×6、在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件。
Java形界面SwingJavaFX和AWT
Java形界面SwingJavaFX和AWT Java形界面Swing、JavaFX和AWTJava是一种广泛应用的编程语言,其强大的图形界面(GUI)库使得开发者能够创建各种各样的用户界面。
在Java中,有三种主要的GUI库,它们分别是Swing、JavaFX和AWT。
本文将详细介绍这三种GUI库的特性和使用方法。
一、SwingSwing是Java提供的一套用于构建图形界面的库,它基于AWT库进行了扩展。
Swing提供了丰富的组件和布局管理器,使得开发者能够轻松地创建漂亮和交互性强的界面。
1.1 组件Swing提供了大量的组件,包括按钮、文本框、标签、列表框、表格等。
开发者可以通过组合这些组件来构建复杂的界面。
Swing组件的特点是可定制性高,开发者可以自定义组件的外观和行为。
1.2 布局管理器Swing通过布局管理器来自动调整组件的位置和大小。
常用的布局管理器有FlowLayout、BorderLayout、GridLayout和GridBagLayout。
开发者可以根据界面的需要选择合适的布局管理器。
1.3 事件处理Swing使用事件模型来处理用户的输入和其他操作。
开发者可以为组件添加事件监听器,响应用户的操作。
事件处理是Swing应用中的重要部分,可以使界面与用户产生交互。
二、JavaFXJavaFX是Oracle推出的新一代Java GUI库。
与Swing相比,JavaFX提供了更多的现代化特性,包括动画效果、3D支持和富文本等。
2.1 UI控件JavaFX提供了一套丰富的UI控件,包括按钮、标签、文本框、下拉框等。
这些控件样式多样,并且支持CSS样式表进行自定义。
2.2 布局JavaFX使用场景图(Scene Graph)来组织界面元素。
开发者可以使用各种布局容器来构建界面,如VBox、HBox、BorderPane等。
2.3 动画效果JavaFX内置了强大的动画框架,开发者可以轻松地创建平滑的过渡效果、缩放动画和旋转动画等。
自考04747《Java语言程序设计(一)》课后习题答案全集
第一章 Java语言基础 (5)1.1 指出JA V A语言的主要特点和JA V A程序的执行过程。
(5)1.2 说出开发与运行JA V A程序的重要步骤。
(5)1.3 如何区分应用程序和小应用程序? (5)1.4 说出JA V A源文件的命名规则。
(5)1.6 JA V A语言使用什么字符集?共有多少个不同的字符? (5)1.7 JA V A语言标识符的命名规则是什么? (6)1.8 JA V A有那些基本数据类型,它们的常量又是如何书写的? (6)1.9 指出下列内容哪些是JA V A语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
(6)第二章运算和语句 (7)2.1 Java的字符能参加算术运算吗? (7)2.2 占字节多的变量能直接赋值给占字节少的变量么? (7)2.3 试用Java语言表达式描述以下数学计算式或逻辑条件: (7)2.4 设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。
(7)2.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。
编写程序求1000之内的所有完全数。
(7)2.7 编写输入正实数x,求平方不超过x的最大整数n,并输出。
(8)2.8 输入正整数n,输出由n行n列星号字符组成的三角形图案。
(11)2.9 设有整型变量x和y的值分别为5和110。
试指出执行了以下循环语句后,变量x和y的值分别多少? (12)2.10求小于999的所有水仙花数。
(12)2.11 编程序解百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。
百钱买百鸡。
求鸡翁、鸡母和鸡雏各几何? (13)2.12 编写程序,按下面的公式计算自然对数底e的值:e=1+1/1!+1/2!+1/3!+1/4!+...... (13)2.13 编写程序,用如下公式计算圆周率PI的近似值:PI=4-4/3+4/5-4/7+4/9-4/11... (14)2.14 回文整数是指正读法和反读相同的整数,编写一个程序,输入一个整数,判断他是否为回文整数。
Java图形化界面编程介绍
Java图形化界⾯编程介绍⽬录1.内容概述2.容器Container2.1Window2.2Panel2.3ScrollPane2.4Box3.布局管理器3.1FlowLayout3.2BorderLayout3.3GridLayout3.4Cardlayout4.AWT基本组件5.事件处理6.开发⼀个简单计算器1.内容概述 先谈谈个⼈对图形化界⾯编程的认识,图形化界⾯编程可以直接的看到每⼀步操作带来的效果,相对于传统编程盯着⿊框框学起来是⾮常⾮常有意思的。
再谈谈最后的效果,界⾯是由窗⼝和组件构成的。
⽽组件在窗⼝内的排列并不是没有章法可⾔,依赖于布局管理器使组件以合适的位置以及合理的排布呈现。
排布于窗⼝内的组件⼜可以通过事件监听器与⽤户进⾏交互…2.容器Container 什么是容器?容器是特殊的组件。
容器是⽤来装东西的,不仅可以存放组件,也可以⽤来存放容器,⽽存放的容器⼜可以存放容器或组件。
听起来有点反复套娃,但学起来还是很容易的!2.1Window Window是可以独⽴存在的顶级窗⼝,其默认使⽤BorderLayout布局管理器。
frame.setLocation(500,300)⽅法⽤来设置窗⼝的位置,通常计算机的远点坐标在左上⾓。
frame.setSize(500,300)⽅法⽤来设置窗⼝的尺⼨。
frame.setVisible(true)设置窗⼝是否可见。
运⾏效果(使⽤Frame来创建⼀个窗⼝): 注意此时的窗⼝不能通过单击右上⾓的’X’关闭窗⼝,只能⼿动结束程序,因为还没有加⼊事件监听机制。
代码:import java.awt.*;public class WindowDemo {public static void main(String[] args) {//创建⼀个窗⼝对象Frame frame = new Frame("测试Window窗⼝");//指定窗⼝的位置和⼤⼩frame.setLocation(500,300);frame.setSize(500,300);//设置窗⼝可见frame.setVisible(true);}}2.2Panel Panel是内嵌式容器,必须内嵌于其它容器中使⽤,不能独⽴存在。
《Java课件》第6章基本可重用类1(语言包)
public int compareTo(String s) 与字符串s比较字典顺序, 相等返回0;
当前串大于s返回1;当前串小于s返回-1
例:String s="Hello !";
System.out.println(s.length()); //将输出7 System.out.println(s.charAt(1)); //将输出e System.out.println(s.equals("Hello! ")); //将输出false System.out.println(pareTo(“Hello! ")); //将输出-1
…..
Java.io.File
….. ….. ….. …..
Java.applet
Java.swing
图6-1
Java工具包层次图
Java常用包简介:
(1)ng包 主要含有与语言相关的类。ng包 由解释程序自动加载,不需显式说明。
(2)jave.io包 主要含有与输入输出相关的类,这些类提 供了对不同的输入输出设备读写数据的支持, 这些输入和输出 设备包括键盘、显示器、打印机、磁盘文件和网络等。 (3)java.util包 包括许多具有特定功能的类,有日期、 向量、哈希表、锁和堆栈等,其中Date类支持与时间有关的操 作。 (4)java.awt包和java.swing包 提供了创建图形用户界 面元素的类。通过这些元素,编程者可以控制所写Applet或用 户程序的外观界面。该包中包含定义窗口、对话框、按钮、复 选框、列表、菜单、滚动条及文本域的类。
(5)包
含有与网络操作相关性的类,如URL、
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 Java图形界面图形界面(Graphic User Interface)简称GUI,是用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统的运行结果同样以图形方式显示给用户的技术。
图形用户界面与字符界面相比,操作简单,画面生动,深受广大用户的欢迎,已经成为目前几乎所有应用软件的既成标准。
本章主要讲述Java的图形界面技术,即使用java.awt包来创建图形界面的方法,包括AWT组件、窗口和菜单设计、布局管理器、绘图操作,等等。
6.1 AWT概述AWT即抽象窗口工具集(Abstract Window Tools),用于图形用户界面的开发。
Sun公司在其早期发布的版本JDK1.0中就提供了AWT,在其随后的多个版本中又逐步加以改进。
6.1.1 AWT的功能AWT的功能包括以下方面:(1)丰富的图形界面组件;(2)强大的事件处理模型图形和图象工具,包括形状、颜色、字体;(3)布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率;(4)无关数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴操作;(5)打印和无鼠标操作。
java.awt是java基本包中最大的一个,其中定义了所有GUI组件类,以及以及其他用于构造图形界面的类,如字体类Font、绘图类Graphics和图像类Image等。
表6-1列出了AWT 中的主要软件包。
表6-1 AWT中的主要软件包6.1.2 AWT的分类1. 基本组件基本组件是图形界面的最小单位,里面不再包含其他的成分,如:按钮、Button 复选框Checkbox 、组合框Choice 、列表List、文本域 Textfield、多行文本域Textarea、静态文本Label、滚动条Scrollbar等。
2. 包容器(Container)包容器是一种特殊的组件,用来包含其他组件,如:面板Panel、窗口 Windows 、对话框Dialog、文件对话框 Filedialog、框架Frame等。
6.1.3 AWT组件的类层次Component组件是所有AWT组件的基类,它提供了基本的显示和事件处理特征,Container 类和其他UI组件都是从Component中派生出来的。
图6-1为AWT组件的类层次结构图。
图6-1 AWT组件的类层次结构图Component类的主要方法有:void enable():使组件可用void disable():使组件不可用void show():显示组件void paint():绘制图形void repaint():刷新void show():显示组件所有的UI组件都可继承或重载以上方法。
Container类的主要方法:void add(Component c) :将指定组件c加入到容器中void SetLayout():设置布局管理器所有的包容器组件都可继承或重载以上方法。
6.1.4 GUI简单实例例6.1 一个简单的Application no61.javaimport java.awt.*;public class no61 extends Frame {public no61 (){setTitle("ButtonExample");setLayout(new FlowLayout());//设置布局add (new Button("push me"));//加入按钮pack();show();}public boolean action(Event e,Object arg){System.out.println(((Button)e.target).getLabel());return true;}public static void main(String args[]){new no61 ();}}运行以下编译和解释命令:javac <enter>java no61<enter>说明:因为需要用到java.awt 包,所以第一句代码为import java.awt.*;第二句代码说明类no61继承了frame框架;在类no61的构造函数中,用frame的方法setTitle()设置了标题,用Container类的setLayout()方法设置布局,用Container类的add ()方法加入了一个按钮组件,该组件上的标签为“push me”;在action方法中实现了事件驱动,即在标准系统设备上输出按钮上的标签。
例6.2 一个简单的Applet,运行结果见图6-2 no62.javaimport java.applet.*;import java.awt.*;public class extends Applet{Label l1;TextField txt1;Label l2;Button b1;Button b2;Label l3;public void init() {l1=new Label("1+1=");add(l1);txt1=new TextField(1);add(txt1);b1=new Button("ok");add(b1);b2=new Button("cacel");add(b2);l2=new Label("Your answer is:");add(l2);l3=new Label(" init ");add(l3);}public boolean action(Event evt,Object arg){String caption=(String)arg;if(evt.target instanceof Button){if(caption=="ok"){int w=Integer.valueOf(txt1.getText()).intValue();if(w==2)l3.setText("right!");elsel3.setText("wrong!");}if(caption=="cacel"){txt1.setText("");l3.setText("");}}return true;}}对应的html文件如下:<body><h1>this is an example of java applet.<applet code=no62width=300 height=200></applet></body>说明:该例是一个Applet类,所以除了“import java.awt.*;”外,还需“import java.awt.*;”。
在Applet的init()方法中,创建并依次加入了以下组件:l1为静态文本,即提示信息“1+1=”;txt1为文本域,由用户输入答案;b1、b2分别为确定按钮和清除按钮;l3为静态文本,由系统输出用户是否回答正确。
在action方法中实现了事件驱动,首先判断用户按下哪个按钮,如是确定按钮,则获取用户输入的答案,根据其对错更改l3的文本信息,如是清除按钮,则将文本域txt1及对错信息l3清空。
该例子的运行结果如下图6-2:图6-2 例6.2的效果图通过以上例子说明以下两点:(1)Java的GUI设计既可用于Java Application,也可用于Java Applet。
(2)Java的GUI设计包括以下方面:①界面上放置哪些组件,每个组件的功能及初始值是什么。
②这些组件以什么样的布局放置。
以上两例因组件较少,因此采用缺省的流式布局,本章后面会详细介绍Java布局管理器。
③如何进行事件处理。
即会发生哪些事件,相应进行什么处理。
以上两例使用JDK1.0中的action方法中实现了事件驱动;在后面一章将详细介绍Java的事件处理机制。
6.2 AWT基本组件6.2.1 标签组件(Label)标签组件显示的是静态文本,在通常情况下是不能编辑的,能起到提示的作用。
1. Label的创建 Label组件有三种构造函数:(1) Label():创建空的标签;(2) Label(String):创建一个带初始字符串的标签;(3) Label(String,int):创建一个带初始字符串及指定对齐方式的标签。
其中对齐方式有几种形式:Left(左对齐)、Right(右对齐)、Center(居中对齐)。
Label默认对齐方式为左对齐。
2. Label的主要方法见表6-2:表6-2 Label的主要方法例6.3 下面是一个创建Label的简单实例,运行结果见图6-3 LabelExample.java import java.applet.*;import java.awt.*;public class LabelExample extends Applet{public void init() {setLayout(new GridLayout(5,1)); 网格布局Label l1=new Label("");//创建空的标签add(l1);l1.setText("no1"); //设置标签内容Label l2=new Label("no2");//创建带初始内容的标签add(l2);Label l3=new Label("Label.LEFT ",Label.LEFT); //左对齐add(l3);Label l4=new Label("Label.RIGHT ",Label.RIGHT);//居中add(l4);Label l5=new Label("Label.CENTER ",Label.CENTER);//右对齐add(l5);}}运行结果如下图6-3:图6-3 例6.3的效果图6.2.2 文本域(Textfield)文本域一般用来让用户输入象姓名、信用卡号这样的信息,它是一个能够接收用户的键盘输入的小块区域。
1. 文本域的创建在创建文本域时,有四种参数类型:空的、空的并且具有指定长度、带有初始文本内容的和带有初始文本内容并具有指定长度的。
例6.4下面是生成这四种文本域的实例,运行结果见图6-4:import java.applet.*;import java.awt.*;public class TxtExample extends Applet{TextField tf1,tf2,tf3,tf4;public void init() {tf1=new TextField();//空的文本域tf2=new TextField(20);// 长度为20的空的文本域tf3=new TextField("你好");//带有初始文本内容的文本域tf4=new TextField("你好",30);// 带有初始文本内容并具有指定长度的文本域add(tf1);add(tf2);add(tf3);add(tf4);}}运行结果如下图6.4:图6-4 例6.4的效果图2. 文本域的主要方法见表6-3。