实验14 Swing组件及事件处理(一)
- 格式:doc
- 大小:271.00 KB
- 文档页数:5
Swing(曹雯君)Swing是一个为Java设计的图形用户界面(GUI)工具包。
Swing是Java API的一部分。
Swing包括了GUI的元器件,如:文本框,按钮,分隔窗格和表。
Swing用于提供一组“轻量级”(全部是 Java 语言)组件,它们用纯Java写成,所以同样可以跨平台使用。
轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
1. 30分钟快速上手1.1 Swing和AWT的关系与区别•关系Swing是一个用于开发JAVA应用程序用户界面的开发工具包。
以抽象窗口包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing API的大部分是AWT的补充扩展而不是直接的替代。
Swing用来绘制轻量级组件的核心渲染功能是由Java 2D提供的,这是AWT的一部分。
然而,轻量级和重量级组件在同一个应用中使用会导致Z-order不兼容。
•区别Swing为基于窗体的GUI应用开发设计,为Java跨平台特性提供了卓越的支持,它完全没有本地代码,不受操作系统的影响,做到了真正的跨平台应用,甚至能够提供本地窗口系统不支持的其他特性。
因此比AWT具有更强的实用性,同时比AWT程序拥有更加精致的外观感受。
AWT只提供基本的组件,使很多设计变得复杂,且无法在不同的平台下保持显示风格的一致性。
例如:如果建立一个按钮(Button)对象,就会有一个按钮对象会请求底层操作系统创建一个真正的按钮。
即在WindowsNT上执行那么创建的就是WindowsNT按钮;在Linux 上执行,那么创建的就是Linux按钮。
因此AWT组件外观会受到底层操作系统的影响。
1.2 Swing操作步骤1.2.1 导入Swing包import javax.swing.*;大部分的Swing程序用到AWT的基础底层结构和事件模型,因此需要导入两个包:import java.awt.*;import java.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包:import.javax.swing.event.*;1.2.2 选择界面风格Swing允许选择程序的图形界面风格常用的有Java风格,Windows风格等。
Java Swing中的FocusEvent和transferFocus()方法在Java Swing中,焦点事件(FocusEvent)是当用户在一个组件上点击或触摸,或者通过键盘导航选择该组件时发生的事件。
当一个组件获得焦点时,它可以接收键盘事件,如按键和快捷键。
当焦点从一个组件转移到另一个组件时,会触发FocusEvent。
FocusEvent类表示与焦点变化相关的事件。
它有两个子类,FocusAdapter和FocusListener。
FocusAdapter是一个实现了FocusListener接口的抽象类,它提供了所有FocusListener方法的默认实现,你可以通过覆盖感兴趣的方法来处理焦点事件。
FocusListener接口有两个方法:focusGained(FocusEvent e)和focusLost(FocusEvent e)。
当组件获得焦点时,会触发focusGained方法;当组件失去焦点时,会触发focusLost方法。
transferFocus()方法是Component类的一个方法,它用于将焦点从当前组件转移到另一个组件。
这个方法没有返回值,如果成功转移了焦点,它将返回true;否则,返回false。
下面是一个简单的示例,展示了如何使用FocusEvent和transferFocus()方法:在这个示例中,我们创建了一个包含两个文本字段的窗口。
我们为这两个文本字段添加了焦点监听器,并实现了FocusListener接口。
当文本字段获得或失去焦点时,我们在控制台中打印相应的消息。
当textField1失去焦点时,我们将焦点请求转移到textField2;当textField2失去焦点时,我们将焦点请求转移到textField1。
实验室突发事件处理预案和程序(共五篇)第一篇:实验室突发事件处理预案和程序实验室突发事件应急预案管理程序一、目的为有效预防、及时控制和妥善处理本实验室各类突发事件,提高快速反应和应急处理能力,建立健全应急机制,确保实验室员工的生命和财产安全,保证正常的工作秩序,维护实验室稳定。
二、适用范围本预案适用于发生于实验室内部的、与实验室安全相关的、危害实验室员工健康以及社会公众健康社会稳定的所有事件。
主要包括:(一)病原微生物和有害有毒化学试剂的实验室污染事件;(二)实验室人员受到实验室内有毒有害病原微生物或有毒有害化学试剂的感染或侵害事件;(三)病原微生物、有毒有害化学试剂被泄漏出实验室事件;(四)由于停电、火灾因素引起的实验室其他紧急事件。
(五)火灾、地震、洪水、炸弹、恐怖威胁和或所有其他种紧急状态。
(六)压力容器事故处理和救援三、职责(一)安全负责人负责实验室的安全管理,在实验室生物安全事件发生时,决策指挥,调动人员,全面部署应急工作。
(二)安全管理员协助实验室负责人负责安全的措施的执行。
(三)实验室负责人负责事故处理的全程监督管理。
(四)事故当事人应沉着冷静,不必惊慌失措,积极采取相应的措施,并上报上级主管。
四、工作流程(一)标本在实验室内转移过程中被打翻的应急处理1、先告知在实验室的工作人员被污染的区域,并请他人帮忙放警告牌在被污染的区域,警告实验室工作人员“请勿靠近”。
并紧急通知实验室的安全管理员和负责人。
2、由当事人佩带好个人防护器具,用垃圾清理用具先清理打破或打散的试管、培养皿或碎玻璃于铁质容器中,由有使用高压灭菌锅资质的工作人员高压灭菌后当感染性废弃物处理。
3、在污染的区域覆盖上有效氯含量为10000mg/L的次氯酸钠消毒液消毒30分钟后再用拖把清除污染物。
4、本次使用过的垃圾清洁用具全部当感染性垃圾处理,不可再次使用,防止二次污染。
5、等实验全部结束后,用可移动紫外消毒车距离地面60-90CM 处消毒地面60分钟以上。
J a v a S w i n g中处理各组件事件的一般步骤集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]Java Swing中处理各组件事件的一般步骤是:1.新建一个组件(如JButton)。
2.将该组件添加到相应的面板(如JPanel)。
3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。
4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。
以上步骤我们可以用多种方法实现。
但人们通常用二种方法。
第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。
为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。
该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。
通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。
首先,我们利用单个监听器来实现该程序。
我们定义一个名为Simple1的类来包括所有代码。
所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。
以下是代码:import .*;import .*;public class Simple1{private static JFrame frame;dd(myPanel);();(true);}}让我们来看看以上代码是如何工作的。
在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。
相应的变量Frame,button1,button2定义在程序的开头部分。
在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。
swing课程设计一、教学目标本课程旨在让学生掌握Swing编程的基本知识,包括Swing组件的使用、事件处理、布局管理器等。
通过课程学习,学生能够设计出功能完善、界面友好的图形用户界面(GUI)应用程序。
具体目标如下:1.理解Swing编程的基本概念。
2.熟悉Swing组件库及其属性。
3.掌握事件处理机制。
4.了解不同的布局管理器及其使用场景。
5.能够使用Swing组件创建简单的GUI应用程序。
6.能够自定义Swing组件样式和行为。
7.能够处理用户输入事件,如按钮点击、文本输入等。
8.能够使用布局管理器合理地布置组件。
情感态度价值观目标:1.培养学生对编程的兴趣,增强其问题解决能力。
2.培养学生团队合作精神,提高沟通协作能力。
3.培养学生自主学习能力,养成良好学习习惯。
二、教学内容本课程教学内容主要包括Swing组件、事件处理、布局管理器等。
具体安排如下:1.Swing组件:介绍Swing组件库,包括基本组件(如按钮、文本框、标签等)和高级组件(如、树、对话框等),以及如何使用这些组件创建GUI 应用程序。
2.事件处理:讲解事件处理机制,包括事件、事件源、事件监听器等概念,以及如何为Swing组件添加事件处理代码。
3.布局管理器:介绍Swing中的布局管理器(如FlowLayout、BorderLayout、GridLayout等),讲解如何使用布局管理器合理地布置组件。
4.实践项目:通过实际项目练习,巩固所学知识,培养实际编程能力。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解Swing编程的基本概念、组件使用和事件处理等知识点。
2.案例分析法:通过分析典型实例,让学生了解Swing编程的实际应用,提高问题解决能力。
3.实验法:安排实验课,让学生动手实践,培养实际编程能力。
四、教学资源1.教材:选用市面上认可的Swing编程教材,作为主要教学资源。
2.参考书:提供相关编程书籍,供学生课后自主学习。
swing jframe的用法(一)Swing JFrame用法详解介绍Swing是Java的一个GUI工具包,提供了一系列的组件用于创建用户界面。
JFrame是Swing中用于创建顶层窗口的类,它提供了一些方法和属性来自定义和管理窗口的外观和行为。
基本用法以下是一些使用Swing JFrame的基本用法,可以作为快速入门的参考:•创建一个空的JFrame对象:JFrame frame = new JFrame();•设置JFrame的标题:("My JFrame");•设置JFrame的大小:(500, 300);•设置Jframe窗口在屏幕上的位置:(null);•设置JFrame的关闭操作:(_ON_CLOSE);•添加其他组件到JFrame中:(component);•显示JFrame:(true);设置布局管理器布局管理器用于控制组件在容器中的位置和大小。
Swing提供了几种常用的布局管理器可以选择,如FlowLayout、BorderLayout和GridLayout等。
以下是设置布局管理器的用法:•使用FlowLayout布局管理器:(new FlowLayout());•使用BorderLayout布局管理器:(new BorderLayout());•使用GridLayout布局管理器:(new GridLayout(rows, columns));添加事件监听器Swing提供了一系列的事件监听器接口,用于对用户操作做出响应。
可以通过添加事件监听器来实现对JFrame中组件的交互响应。
以下是添加事件监听器的用法:•添加ActionListener监听器:(new ActionListener() { ... });•添加MouseListener监听器:(new MouseListener() { ... });•添加KeyListener监听器:(new KeyListener() { ... });自定义JFrame外观可以通过一些方法和属性来自定义JFrame的外观,以下是一些常用的自定义方法和属性:•设置JFrame的背景颜色:().setBackground();•设置JFrame的字体:(new Font("Arial", , 12));•设置JFrame的边框:().setBorder(());总结本文介绍了一些Swing JFrame的常用用法,涵盖了基本使用、布局管理器、事件监听器和外观自定义等方面。
swing课程设计一、课程目标知识目标:1. 学生能理解并掌握Swing的基本概念,如组件、容器和事件处理。
2. 学生能描述Swing库中至少三种常用组件的特点和使用方法。
3. 学生能解释Swing事件处理机制,并运用到实际编程中。
技能目标:1. 学生能运用Swing组件和容器创建图形用户界面(GUI)。
2. 学生能通过事件处理实现用户与程序的交互功能。
3. 学生能运用所学知识,独立设计并实现一个简单的Swing应用程序。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习Java的热情。
2. 学生养成合作学习和主动探究问题的习惯,提高解决问题的能力。
3. 学生树立正确的价值观,认识到编程对于解决实际问题的意义和价值。
分析课程性质、学生特点和教学要求:本课程为Java编程中的Swing图形用户界面设计,旨在让学生掌握Swing编程的基本知识和技能。
针对初中年级学生的特点,课程设计注重培养学生的学习兴趣和动手能力,将抽象的知识点转化为具体实例,使学生易于理解和掌握。
在教学过程中,要求教师关注学生的个体差异,鼓励学生主动提问、合作学习,注重培养学生的编程思维和实际应用能力。
课程目标分解:1. 掌握Swing基本概念,了解常用组件和容器。
2. 学习Swing事件处理机制,实现简单交互功能。
3. 设计并实现一个简单的Swing应用程序,展示所学知识。
4. 培养学生合作学习、主动探究问题的习惯。
5. 激发学生对编程的兴趣,树立正确的价值观。
二、教学内容1. Swing基本概念:组件、容器、布局管理器。
2. 常用Swing组件:JFrame、JButton、JTextField、JLabel、JPanel等。
3. Swing事件处理机制:事件、监听器、事件源、事件适配器。
4. 布局管理器:BorderLayout、FlowLayout、GridLayout、BoxLayout 等。
5. Swing程序设计步骤:创建窗口、添加组件、设置布局、注册监听器、事件处理。
java swing实验心得Java Swing实验心得在进行Java Swing实验的过程中,我深刻地体会到了Swing作为Java 的图形用户界面(GUI)工具包的强大功能和灵活性。
通过实践,我进一步掌握了Swing的基本概念、常用组件以及事件处理机制,深化了对面向对象编程的理解,并且体验了开发GUI应用程序的乐趣和成就感。
首先,在实验中我对Swing的基本概念有了更加清晰的理解。
Swing是一个用于构建图形用户界面的工具包,它是AWT(Abstract Window Toolkit)的扩展,提供了更多的组件和更强大的功能。
与AWT相比,Swing 更加独立、轻量级,具有更好的跨平台性能。
通过实验,我明确了Swing 使用的基本原则和构造GUI应用程序的基本步骤。
其次,我熟悉了Swing的常用组件及其使用方法。
Swing提供了丰富的组件,如按钮、标签、文本框、列表框、下拉框等等,每个组件都有特定的功能和属性。
在实验中,我通过与不同组件的交互使用,了解了它们的基本用法和常见属性的设置。
例如,通过按钮的点击事件实现交互,通过文本框的输入事件获取用户输入,通过列表框的选中事件实现列表项的处理等等。
此外,我对Swing的布局管理有了更深入的了解。
Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout 等,用于管理组件的布局和排列。
在实验中,我掌握了这些布局管理器的基本使用方法,并且体验到了不同布局管理器对于界面布局的灵活性和效果的不同。
另外,我了解了Swing的事件处理机制。
Swing采用事件驱动的方式,通过监听器(Listener)对用户操作进行响应。
在实验中,我学会了使用事件监听器接口和适配器来处理用户的交互操作。
例如,通过为按钮添加ActionListener监听器,实现按钮的点击事件处理;通过为文本框添加DocumentListener监听器,实现实时监测文本框内容的变化等。
第一部份绪论 (2)本课程实验的作用与任务 (2)本课程实验的基础知识 (2)本课程实验教学项目及其教学要求 (2)第二部份基本实验指导 (4)实验一:Java基本语法 (4)实验三:Java面向对象程序设计(一) (9)实验五:Java常用类 (18)实验七:Java集合 (21)实验九:GUI图形用户界面 (26)第一部份绪论本课程实验的作用与任务使学生进一步深刻理解Java语言基本概念、语法规则及程序结构,熟练掌握Java语言程序设计的基本方法,提高利用Java在网络环境下开发、设计应用程序的能力,从而进一步培养学生的创新能力和解决实际问题的能力。
熟悉JDK工具的编程和调试环境;熟练掌握选择和循环结构的程序设计;熟练掌握面向对象的程序设计思想,包括系统类的应用和用户自定义类;充分理解类的三种的特性:封装、继承和多态,特别是通过接口和抽象类理解多态;掌握图形用户界面的设计,特别是事件处理;掌握包的使用;掌握常用的输入输出流类的应用。
最后能根据实验的要求认真完成实验报告。
本课程实验的基础知识Java的基本数据类型包括:byte,short,int,long,double,char。
Java的数组属于引用类型的数据,是将相同类型的数据按顺序组成的一种符合数据类型。
Java的运算符有算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符,特别要注意它们的优先级。
Java的控制语句有if语句、switch语句、for语句、while语句、do-while语句。
类是组成Java程序的基本要素,类有两个重要的成员:成员变量和方法。
类是创建对象的模板,类将对象的属性和功能封装为一个整体。
成员变量和类变量的区别、实例方法和类方法的区别、方法的重载、成员的访问权限等都是实验课程所依据的重要理论。
继承、多态、接口、包及内部类都是Java中非常重要的概念。
Java使用“流”来读写数据。
Java的输入输出工作是通过FileInputStream类、FileReader 类、BufferedReader类、ByteArrayInputStream类、ByteArrayOutputStream类等完成的。
swing 的用法一、概述Swing是Java编程语言中一个重要的图形用户界面(GUI)工具包,提供了各种组件和布局管理器,用于创建丰富多彩的桌面应用程序。
Swing包含了多个重要的组件类,如按钮(Button)、标签(Label)、文本框(TextField)、文本域(TextArea)等等,这些组件类提供了丰富的API,用于实现各种交互功能。
二、Swing组件1.按钮(Button):Swing中的Button类是一个简单的用户界面组件,用于响应用户的点击事件。
可以通过设置按钮的文本、图标和监听器等属性来定制按钮的外观和行为。
2.标签(Label):Label类用于在GUI中显示文本或图像信息。
可以通过设置标签的文本内容、字体、颜色等属性来定制标签的外观。
3.文本框(TextField)和文本域(TextArea):这两个组件类分别用于输入和显示多行文本信息。
可以通过设置文本框和文本域的大小、行数、滚动条等属性来定制它们的外观和行为。
4.菜单(Menu)和菜单项(MenuItem):Menu类用于创建菜单,MenuItem类是菜单项的子类。
可以通过设置菜单和菜单项的名称、图标、监听器等属性来定制它们的外观和行为。
5.表格(Table)和表格组件(JTable):表格是Swing中另一个重要的组件类,用于显示和操作表格数据。
可以通过设置表格的大小、列数、行头、单元格样式等属性来定制表格的外观和行为。
三、Swing布局管理器Swing提供了多种布局管理器,用于控制组件在容器中的布局方式。
常见的布局管理器包括:1.FlowLayout:按照水平或垂直方向自动排列组件。
2.BorderLayout:将容器分为左右、左上、右上、左下、右下五个区域,将组件放置在指定的区域中。
3.GridLayout:将组件按照网格方式排列,可以设置行数和列数。
4.CardLayout:用于管理多个面板或窗口,通过切换卡片来显示不同的界面。
一抛砖引玉本文指在利用一个小程序”Swing 组件大全”来引导大家学习Java这门语言,熟悉Ja va Swing的各个组件。
并在学习过程中参考作者设计这一程序的方法和思想,最终形成自己的思维方式和学习方式。
你能举一返三是作者最开心的事情。
小程序演示了Java Swing 大部分组件。
最后附上了全部代码及详细的注释说明。
希望本文能对大家学习Java有所帮助。
随着Java风潮席卷国内,学习Java的方法和路径越来越多。
而在大量的书本前,在J ava庞大的类库前大大家都有点迷失方向的感觉,是学J2EE,J2ME还是。
然而所有的这些都或多或少的离不开J2SE。
万丈高楼平地起。
J2SE是整个Java的基础,学好了这个对Java的各个方向都是很有利的。
而学习J2SE的最初点就在界面设计,因为界面编程是你来感觉最直接的手段,是提高大家编程兴趣的很好开始,因为你写完程序编译后可马上看到自己的成果。
而不像后台编程做完了都感受不到效果。
而好的界面也是你测试你其他程序的基础。
界面设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是一些拖拉操作,由于Java语言的设计中所有的东西都是程序代码,在Java中如果想要设计一个好的界面,可不是简单的拖拉操作能完成的。
即使使用了如JBuilder这么强大的可视化工具,你也得亲自动手写一些界面设计代码才能很好的完成你的任务。
如果你能在此基础上理解Java界面设计的思想,对你学习这门语言将有莫大的帮助。
Java界面设计主要涉及Awt,Swing两大类库,Swing是Awt的扩展和功能加强。
下面我们就以Swing为基础来说说整个Java的界面设计。
二感受效果在开始之前,让我们看看这篇文章要达到的效果,有了目标和成果才有学习的兴趣,起码我是这样认为和学习的。
如下图所示,这就是我们设计的界面,它包括了Swing中大部分常用的组件。
有些功能界面上反映不出来,大家可尝试编译源代码点南击各个部分,看看它们的响应事件。
swing组件及其用法Swing组件是用于创建图形用户界面的Java库。
它提供了丰富的界面元素和布局管理器,可以实现各种图形界面应用程序。
下面是一些常用的Swing组件及其用法:1. JFrame:顶层窗口组件,用于创建一个窗口。
用法示例:```javaJFrame frame = new JFrame("My Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500, 300);frame.setVisible(true);```2. JPanel:容器组件,用于组织其他组件。
用法示例:```javaJPanel panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(new JButton("Button 1"));panel.add(new JButton("Button 2"));```3. JButton:按钮组件,用于触发动作。
用法示例:```javaJButton button = new JButton("Click me");button.addActionListener(e -> System.out.println("Buttonclicked"));```4. JLabel:标签组件,用于显示文本或图像。
用法示例:```javaJLabel label = new JLabel("Hello, world!");label.setIcon(new ImageIcon("image.png"));```5. JTextField:文本输入框组件,用于接收用户输入。
JavaGUI编程与Swing库Java是一种功能强大的编程语言,被广泛用于开发各种应用程序。
GUI(图形用户界面)是一种用户通过图形方式与计算机进行交互的界面。
Java 提供了丰富的GUI编程工具,其中最常用的就是Swing库。
本文将深入探讨JavaGUI编程与Swing库的相关知识。
一、Swing库概述Swing是Java中的一个GUI工具包,提供了一系列的组件和容器来构建各种类型的窗口和用户界面。
Swing库的优点在于其跨平台性能,可以在不同操作系统上运行,并且提供了丰富的可自定义组件。
Swing库使用面向对象的设计模式,易于学习和使用。
二、Swing组件1. JFrame类JFrame是Swing库中最常用的顶层容器组件,用于创建窗口。
可以通过JFrame类的构造方法和方法设置窗口的大小、标题、布局等属性。
2. JPanel类JPanel是Swing库中的一个容器组件,用于放置其他组件。
可以通过JPanel类的构造方法和方法设置面板的布局、背景颜色等属性。
3. JButton类JButton是Swing库中的一个常用按钮组件,用于触发特定的操作。
可以通过JButton类的构造方法和方法设置按钮的文本、图标、事件监听等属性。
4. JLabel类JLabel是Swing库中的一个标签组件,用于显示文本或图像。
可以通过JLabel类的构造方法和方法设置标签的文本、图像、字体等属性。
5. JTextField类JTextField是Swing库中的一个文本框组件,用于接收用户的输入。
可以通过JTextField类的构造方法和方法设置文本框的大小、内容、是否可编辑等属性。
6. JCheckBox类JCheckBox是Swing库中的一个复选框组件,用于提供多个选项供用户选择。
可以通过JCheckBox类的构造方法和方法设置复选框的文本、选中状态等属性。
7. JRadioButton类JRadioButton是Swing库中的一个单选按钮组件,用于提供多个选项供用户选择,但只能选择一个。
实验报告课程名称: Java语言程序设计院(系):管理学院专业班级:姓名:学号:指导教师:2013年6月9日《Java语言程序设计》上机实验报告序号实验五组号 1 成绩名称图形用户界面AWT/Swing组件学时 2评阅教师签名: 2013年月日一、实验目的1.熟悉Java AWT、swing组件的功能;2.掌握常用组件的事件接口;3.会应用AWT、swing组件进行应用程序设计。
二、实验内容AWT、swing组件应用程序设计设计(完成windows计算器两种以上的运算功能)。
三、实验硬件、软件环境1.PC计算机一台,配置为CPU为P42.8G,内存为512M,硬盘为80G;2.WindowsXP + JSDK1.6 + JCreatorV4。
四、实验算法设计在设计计算其界面的基础上,添加事件监视,对按钮进行各种操作。
五、程序设计/*** @(#)Calculator.java*** @author* @version 1.00 2013/6/9*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame{private final JTextField textField;private String num="0";private String operator="+";private String result="0";public static void main(String agrs[]){Calculator frame=new Calculator();frame.setVisible(true);}public Calculator(){super();setTitle("计算器");setResizable(false);setBounds(100,100,208,242);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JPanel viewPanel=new JPanel();add(viewPanel,BorderLayout.NORTH);textField=new JTextField();textField.setText(num);textField.setColumns(18);textField.setEditable(false);textField.setHorizontalAlignment(SwingConstants.RIGHT);viewPanel.add(textField);add(viewPanel,BorderLayout.NORTH);final JPanel clearButtonPanel=new JPanel();clearButtonPanel.setLayout(new GridLayout(1,3,5,5));add(clearButtonPanel,BorderLayout.CENTER);String[] clearButtonNames={"<-","CE","C"};for(int i=0;i<3;i++){final JButton button=new JButton(clearButtonNames[i]);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JButton button=(JButton)e.getSource();String text=button.getText().trim();if(text.equals("<-")){int length=num.length();if(length==1)num="0";else num=num.substring(0,length-1);}else if(text.equals("CE")){num="0";}else{num="0";operator="+";result="0";}textField.setText(num);}});clearButtonPanel.add(button);};final JPanel inputButtonPanel=new JPanel();final GridLayout gridLayout=new GridLayout(4,0,10,10);inputButtonPanel.setLayout(gridLayout);add(inputButtonPanel,BorderLayout.SOUTH);String[][]inputButtonNames={{"1","2","3","+"},{"4","5","6","-"},{"7","8","9","*"},{".","0","=","/"} };for(int row=0;row<4;row++){for(int col=0;col<4;col++){final JButton button=new JButton(inputButtonNames[row][col]);button.setName(row+""+col);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JButton button=(JButton)e.getSource();String name=button.getName();int row=Integer.valueOf(name.substring(0,1));int col=Integer.valueOf(name.substring(1,2));100if(col==3){count();textField.setText(result);operator=button.getText();}else if(row==3){if(col==0){if(num.indexOf(".")<0){num=num+button.getText();textField.setText(num);}}else if(col==1){if(num.indexOf(".")>0){num=num+button.getText();textField.setText(num);}else{if(!num.substring(0,1).equals("0")){num=num+button.getText();textField.setText(num);}}}else{count();textField.setText(result);operator="+";}}else{if(num.equals("0"))num=button.getText();else num=num+button.getText();textField.setText(num);}}void count(){float n=Float.valueOf(num);float r=Float.valueOf(result);if(r==0){result=num;num="0";}else{if(operator.equals("+")){r=r+n;}else if(operator.equals("-")){r=r-n;}else if(operator.equals("*")){r=r*n;}else {r=r/n;}num="0";result=r+"";}}});inputButtonPanel.add(button);}}}}六、程序测试记录及结果、运行说明七、实验总结系统的设计程序,完成程序前后关照,解决每个问题关键要求。
Java之Swing编程理解什么是GUI/设计GUI基本界面/理解事件类和接口/学习使用部件按钮,标签,列表,文本框,面板/学会处理鼠标和键盘事件/使用基本的布局管理器。
GUI是由N多的部件构成的,这些部件叫Components, 也叫Gadget(神探加吉特那个词)。
这些部件有JLabel/JTextField/JButton/JCheckBox/JComboxBox/JList/JPanel。
它们构成了界面。
这些部件在屏幕上的排列顺序由LayoutManager负责管理,再加上Menu,Menu Bar 就构成了完整的用户界面。
用户界面只是一个外观。
界面是为了完成和用户的交互任务。
用户可以用Mouse/KeyBoard/甚至是Voice 。
界面取得用户输入事件后传给相应的Listener类对象,由这些特殊的Listener响应事件,这些Listener是一些接口(Interface),接口中有一些必须超越的方法。
事件发生后,这些被超越的方法自动调用以完成交互任务。
9.1Swing概况(1)Swing由纯Java写成,可移植性好,外观在不同平台上相同。
所以Swing部件称为轻量级组件(2)AWT部件和平台紧密相关,各种平台它们的外观不尽相同,所以称重量级组件,通用性差。
注意,某些Swing部件还是重量级的,比如JFrame和JAppletng.object ponent java.awt.container java.swing.JComponentJAVA的GUI部件都是Component,都有paint repaint update方法Container是一个集合,里面放了各种的GUI部件,而我们常用的Contentpane就是一个Container对象请大家注意J2SDK中的Components/container/Jcomponet的方法,这些方法是所有部件共有的。
Swing 部件继承图JComponent的好处1 自定义Look and Feel外观。
Swing基础知识集合一、JFrame窗体窗体是一个组件容器,所有组件都必须有窗体去承载它们。
JFrame窗体类包含一个容器类,所有设置在窗体上的组件实际上都是放置在这个容器类中的。
这个容器作为JFrame类的一个封装属性,通过getContentPane()方法可以获取它。
如:JFrame jf = new JFrame();Container container = if.getContentPane();Swing窗体包含很多层,通常与组件和容器相关联,所以在JFrame对象创建完成后,需要调用getContentPane()方法获取窗体的组件容器,然后在容器中添加组件或设置布局管理器,通常这个容器用来包含和显示组件。
如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置。
Swing是单线程的,所有与组件绘制有关的操作都必须在单一线程中完成,这个线程就是事件队列线程。
EventQueue类的invokeLater()方法可以将Swing 组件相关操作的线程加入事件队列中,这样可以把界面绘制与业务处理线程分开。
二、常用布局管理器(一)绝对布局使用绝对布局的步骤:(1)使用Container.setLayout(null)方式取消布局管理器(2)使用Component.setBounds()方法来设置每个组件的大小与位置在使用绝对布局之前,需要调用容器的setLayout(null)方法告知编译器这里不再使用布局管理器。
其中,JFrame窗体需要调用getContentPane()方法获取窗体容器,再设置容器的布局方式。
(二)流布局管理器——FlowLayout布局像“流”一样按指定的方向摆放组件,直到占据了这一行的所有空间,然后再向下移动一行。
流布局用于安排有向流中的组件,这非常类似于段落中的文本行。
流的方向取决于容器的componentOrientation 属性,它可能是以下两个值中的一个:∙ComponentOrientation.LEFT_TO_RIGHT∙ComponentOrientation.RIGHT_TO_LEFT流布局一般用来安排面板中的按钮。
实验14 Swing组件及事件处理(一)
【实验环境】
Windows XP,JDK1.6与Eclipse
【实验目的】
1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,
2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
【实验要求】
1. 掌握在Applet 容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方
法。
2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3. 掌握编写独立运行的窗口界面的方法。
4. 了解Java Swing 组件的使用方法。
5. 了解对话框的使用方法。
【实验内容】
一.创建图形用户界面
图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。
通过容器的add 方法把组件加入到容器中。
1.在Applet 中添加标签、按钮并使用网格布局
(1)程序功能:在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
(2)编写LX8_1.java 程序文件,源代码如下。
(3)编译程序LX8_1.java。
(4)编写显示Applet 的页面文件LX8_1.html,在浏览器显示结果如图8.1 所示。
图8.1
2.在面板中添加组件
(1)程序功能:在Applet 中添加面板容器,并分别在Applet、面板容器中添加组件并使用不同的布局管理方式。
(2)编写LX8_2.java 程序文件,源代码如下。
(3)编译程序LX8_2.java。
(4)编写显示Applet 的页面文件LX8_2.html,在浏览器显示结果如图8.2 所示。
图8.2
3.设计一个计算器
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
计算器结果如下:。