11第十一章 Java的GUI编程初步实验代码
- 格式:doc
- 大小:110.50 KB
- 文档页数:12
java gui实训课程设计Java GUI实训课程设计引言:随着计算机技术的不断发展,图形用户界面(Graphical User Interface,GUI)已经成为了现代软件开发的重要组成部分之一。
Java作为一种广泛应用于软件开发领域的编程语言,也提供了强大的GUI库,使得开发者能够轻松地创建交互性强、界面美观的应用程序。
因此,Java GUI实训课程设计对于学生们来说具有重要的意义。
一、课程设计背景与目标Java GUI实训课程设计旨在通过实践操作,让学生们掌握Java GUI 开发的基本理论与应用技巧。
通过该课程的学习,学生们将能够独立完成一个基于Java GUI的应用程序的设计与开发,提高他们的软件开发能力和创新思维。
二、课程设计内容1. Java GUI基础知识在课程的开始阶段,学生们将系统地学习Java GUI的基本概念和原理,包括Swing组件、布局管理器、事件监听器等内容。
通过理论学习和实践操作,学生们将掌握Java GUI的基本框架和开发流程。
2. 实践项目选题在学习了Java GUI的基础知识之后,学生们将根据自己的兴趣和实际需求,选择一个适合的实践项目进行设计与开发。
项目的选题可以涉及各个领域,例如学生信息管理系统、音乐播放器、游戏界面等等。
通过实践项目的设计与开发,学生们能够将所学知识应用于实际,提升他们的综合能力。
3. 项目需求分析与设计在开始实际编码之前,学生们需要进行项目需求分析与设计。
他们需要与团队成员合作,明确项目的功能需求和界面设计,并编写相应的需求文档和设计文档。
这一阶段的工作能够帮助学生们更好地理解项目的需求,为后续的编码工作奠定基础。
4. 项目编码与测试在完成项目的需求分析与设计之后,学生们将进入项目的编码与测试阶段。
他们需要根据需求文档和设计文档编写Java代码,并进行相应的单元测试和集成测试。
通过这一阶段的工作,学生们将加深对Java GUI的理解,并掌握常用的调试技巧。
Java的GUI编程一、介绍Java是一种广泛使用的编程语言,具有跨平台性和面向对象的特点。
GUI (Graphical User Interface)编程是指通过图形化界面与用户进行交互的编程方式。
Java提供了丰富的GUI编程工具和库,使开发人员能够轻松地创建各种图形化界面应用程序。
二、SwingSwing是Java中最常用的GUI编程框架之一。
它提供了一套丰富的组件,如按钮、文本框、标签等,以及容器组件,如面板、框架等。
开发人员可以使用Swing 来构建各种复杂的图形化界面应用程序。
在Swing中,每个组件都有自己的属性和方法,可以通过设置和调用这些属性和方法来实现不同的功能。
例如,可以通过设置按钮的文本、颜色和事件处理程序来创建一个可点击的按钮。
Swing还支持布局管理器,用于自动调整组件的位置和大小。
常用的布局管理器有FlowLayout、BorderLayout和GridLayout等。
开发人员可以根据需求选择合适的布局管理器来实现自己想要的界面布局。
三、JavaFXJavaFX是Java中另一个重要的GUI编程框架。
与Swing相比,JavaFX提供了更加现代化和强大的功能。
它使用了一种基于XML的标记语言FXML来描述界面,使得界面设计和开发更加灵活和易于维护。
JavaFX提供了丰富的内置组件,并且支持自定义组件的开发。
它还支持动画效果、图形渲染和多媒体处理等高级功能。
开发人员可以利用这些功能创建出更加精美和交互性强的界面应用程序。
JavaFX还提供了场景图(Scene Graph)的概念,用于管理界面上的所有组件和布局。
开发人员可以通过添加和删除组件、设置组件的属性和监听用户事件来实现界面的交互和动态更新。
四、AWTAWT(Abstract Window Toolkit)是Java最早的GUI编程框架,它提供了一套与操作系统窗口系统交互的接口。
AWT的组件和布局管理器是基于操作系统的原生界面,因此在不同的操作系统上可能会有不同的外观和行为。
使用Java开发形用户界面(GUI)应用程序Java是一种跨平台的编程语言,广泛应用于开发各种类型的应用程序,包括形用户界面(GUI)应用程序。
本文将介绍使用Java开发GUI应用程序的基本步骤和技巧。
一、GUI应用程序介绍GUI应用程序是指具有图形界面的应用程序,用户可以通过鼠标、键盘等输入设备与程序进行交互。
相比于命令行应用程序,GUI应用程序通常更加直观、易于使用。
Java提供了丰富的GUI编程库,可以方便地创建各种交互式应用程序。
二、Java GUI编程库Java提供了两个主要的GUI编程库:AWT(Abstract Window Toolkit)和Swing。
AWT是Java最早提供的GUI编程库,它使用操作系统的原生组件绘制用户界面;而Swing是在AWT基础上开发的,它使用Java绘制用户界面,实现了更好的跨平台性能。
三、创建GUI应用程序的基本步骤1.导入必要的类库:在开发GUI应用程序之前,需要导入相应的类库,例如import javax.swing.*。
2.创建窗口:使用JFrame类创建窗口,并设置窗口的标题、大小和关闭方式等。
3.创建组件:使用各种Swing组件,如按钮、标签、文本框等,来构建用户界面。
4.设置布局管理器:使用布局管理器来控制组件的排版和布局,例如FlowLayout、BorderLayout等。
5.添加事件处理:为各个组件添加事件监听器,使其能够响应用户的交互操作,例如按钮的点击事件、文本框的文本改变事件等。
6.处理用户输入:在事件处理中,根据用户输入的不同,可以进行相应的逻辑处理,例如验证用户输入的合法性、执行特定的操作等。
7.显示窗口:将窗口组件添加到窗口中,并设置窗口可见,使其能够显示出来。
四、示例代码以下是一个使用Java Swing库创建简单GUI应用程序的示例代码:```import javax.swing.*;public class MyApplication extends JFrame {public MyApplication() {// 设置窗口标题setTitle("My Application");// 设置窗口大小setSize(400, 300);// 设置窗口关闭方式setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建标签组件JLabel label = new JLabel("Hello, World!");// 将标签组件添加到窗口中add(label);// 设置布局管理器setLayout(new FlowLayout());// 显示窗口setVisible(true);}public static void main(String[] args) {// 在事件分派线程中创建窗口对象SwingUtilities.invokeLater(new Runnable() {public void run() {new MyApplication();}});}}```以上代码创建了一个窗口,窗口标题为"My Application",大小为400x300像素。
Java编程基础——GUI编程12第十一章GUI 编程目标:本章旨在向学员介绍本章旨在向学员介绍::什么是GUI GUI,,Java AWT 包,什么是容器的概念及相关类的概念及相关类。
AWT 包中组件的继承关系的继承关系。
布局管理器布局管理器。
AWT 中常用组件的使用中常用组件的使用。
AWT 中的事件处理模型件处理模型。
简介Swing API 。
如何给Java 应用程序打包应用程序打包。
时间时间::学时教学方法教学方法::3本章要点•GUI 概述•AWT 概述•AWT 中的组件和容器•布局管理器•事件处理模型•事件分类•事件适配器•匿名内部类•Applet •Swing•Jar 为应用程序打包4GUI 概述•GUI (Graphical User Interface )图形用户界面,包括窗口、菜单栏、工具条、按钮等组件和其他各种屏幕元素•GUI 组件按其作用可分为基本组件基本组件((简称组件简称组件))和容器两大类:–GUI 组件,也称构件,其上不能容纳其他组件,如按钮、文本框等图形界面元素–容器是一种特殊的组件,用来容纳其他组件,如窗口、对话框等•Java 提供了两个GUI 的开发包:java.awt 和javax.swing –java.awt 包中的抽象类Component 是所有Java GUI 组件的共同父类,它规定了所有GUI 组件的基本特性–swing是AWT的扩展,它提供了更强大和更灵活的组件集合,如树,表格等等5AWT 概述•AWT (Abstract Window Tools)是java 中处理图形最基本的方式,可以用来创建Java 的Applet 及窗口程序。
•由于AWT 中的每个组件都需要消耗系统资源,Sun 对AWT 进行改进,Swing 由此出现。
•Swing 的组件均是由AWT 中的Container 类为基础开发设计的,故需学习AWT 技术。
6•一个Java 的图形用户界面的最基本组成部分就是组件(Component ),组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象。
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:2012年5月17日实验成绩:第11章java的GUI 编程初步实验内容:(1)按钮有序排列(2)密码验证问题(3)名片录入管理界面设计(4)文字字体设计窗体实验1、按钮有序排列实验目的:(1) 了解GUI 的概念;(2) 了解java.awt 包和javax.swing 包, 以及比较它们具有的同性质的组件的异同;(3) 掌握和运用Java 的基本GUI 组件, 了解它们的特点。
实验任务:本实验要求定义按钮若干让它们按照从左向右的顺序依次排列, 显示5个带图标的按钮。
实验步骤:在Eclipse 中新建一个Chapter11项目, 按照下列要求完成实验。
练习: 调试和运行程序ButtonCounter.java;要求: 在当前项目Chapter11中, 新建一个文件ButtonCounter.java, 将程序清单11-1 中的程序输入并保存。
该程序可以定义按钮若干使它们按照从左向右的顺序依次排列, 显示5个带图标的按钮, 运行结果如图1所示。
阅读和分析程序ButtonCounter.java, 调试编译并运行该程序。
图1程序清单11-1 ButtonCounter.java//ButtonCounter.javaimport javax.swing.*;import java.awt.*;public class ButtonCounter extends JFrame {public ButtonCounter() {super("显示按钮窗口");ImageIcon Icon = new ImageIcon("image/image.gif");JButton jbt1 = new JButton("按钮",Icon);JButton jbt2 = new JButton("按钮",Icon);JButton jbt3 = new JButton("按钮",Icon);JButton jbt4 = new JButton("按钮",Icon);JButton jbt5 = new JButton("按钮",Icon);JPanel p1 = new JPanel();p1.add(jbt1);JPanel p2 = new JPanel();p2.add(jbt2);JPanel p3 = new JPanel();p2.add(jbt3);JPanel p4=new JPanel();p4.add(jbt4);JPanel p5=new JPanel();p5.add(jbt5);getContentPane().setLayout(new FlowLayout());getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);getContentPane().add(p4);getContentPane().add(p5);}public static void main(String[] args) {// Create a frame and set its propertiesJFrame frame = new ButtonCounter();frame.pack();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setV isible(true);}}运行结果:思考(1) 在程序的main() 方法中有语句Frame.pack(), 该方法的作用是什么?该方法的作用是自动确定Frame的大小。
GUI应用开发JAVA实验报告一、实验目的本实验旨在提高学生对于GUI应用开发的理论和实践能力。
通过本实验,学生将掌握使用JAVA语言开发GUI应用程序的方法和技巧,并能够应用所学的知识,完成一个简单的GUI应用程序的开发。
二、实验内容本实验要求学生使用JAVA语言开发一个简单的GUI应用程序,要求程序能够实现以下功能:1.提供一个用户界面,包含输入框和按钮。
用户可以在输入框中输入一段文字,然后点击按钮后,程序将会把输入框中的文字显示在屏幕上。
2.提供一个菜单栏,包含一个文件菜单和一个帮助菜单。
文件菜单中包含一个打开选项和一个退出选项。
帮助菜单中包含一个关于选项。
用户可以通过菜单栏选择文件菜单中的选项,实现打开文件和退出程序的功能。
用户还可以选择帮助菜单中的关于选项,显示程序的相关信息。
三、实验步骤1.创建一个新的JAVA项目,命名为“GUI应用开发”。
2.在项目中创建一个新的JAVA类,命名为“GUI应用”。
3. 在“GUI应用”类中使用Swing包中的组件创建用户界面,并添加输入框和按钮。
4. 在按钮的ActionListener中实现按钮的点击事件,获取输入框中的文字并显示在屏幕上。
5.在“GUI应用”类中创建一个菜单栏,并添加文件菜单和帮助菜单。
6.在文件菜单中添加打开选项和退出选项,并实现打开文件和退出程序的功能。
7.在帮助菜单中添加关于选项,并实现显示程序的相关信息的功能。
四、实验结果经过实验,我成功地开发了一个能够实现要求功能的GUI应用程序。
用户可以在输入框中输入文字,然后点击按钮,程序会将输入框中的文字显示在屏幕上。
同时,用户还可以通过菜单栏选择文件菜单中的选项,实现打开文件和退出程序的功能。
用户还可以选择帮助菜单中的关于选项,显示程序的相关信息。
五、实验总结通过本次实验,我深入了解了GUI应用开发的基本原理和常用的技巧。
我学会了使用JAVA语言开发GUI应用程序的方法,并能够应用所学的知识,完成一个简单的GUI应用程序的开发。
Java中的GUI编程入门指南Java作为一种功能强大的编程语言,提供了丰富的图形用户界面(Graphical User Interface,简称GUI)编程工具和库,使得开发人员能够轻松地创建具有吸引力和交互性的界面。
本文将为您介绍Java中的GUI编程,帮助您入门并了解GUI编程的基本原理和常用组件。
一、GUI编程基础在开始学习Java中的GUI编程之前,首先需要了解一些基础知识。
GUI编程是通过使用图形库和工具来创建用户界面,其中包括各种不同的用户界面元素,如窗口、按钮、文本框等。
Java提供了独立于操作系统的跨平台GUI编程工具,因此您的应用程序可以在不同的操作系统上运行,并保持一致的外观和功能。
二、Swing组件库Java中最常用的GUI编程工具是Swing组件库,它提供了各种各样的组件,用于创建界面的各个部分。
Swing组件库具有丰富的功能和可定制性,可以满足不同应用程序的需求。
以下是一些常用的Swing组件:1. JFrame:JFrame是Java中的顶层容器,用于创建和管理窗口。
您可以在窗口中添加其他组件,并定义窗口的大小、位置和操作。
2. JPanel:JPanel是用于布局和组织其他组件的容器。
您可以将多个JPanel组合在一起形成复杂的界面。
3. JButton:JButton是一个用于触发特定操作的按钮。
您可以为按钮添加事件监听器,以便在用户点击按钮时执行一些操作。
4. JLabel:JLabel用于显示文本或图像。
您可以使用JLabel来显示应用程序的标题、标签等。
5. JTextField:JTextField是一个文本输入框,用户可以在其中输入和编辑文本。
6. JTable:JTable用于显示和编辑表格数据。
您可以通过设置不同的表格模型和渲染器来自定义表格的外观和功能。
三、GUI编程示例为了帮助您更好地理解Java中的GUI编程,以下是一个简单的示例,演示了如何创建一个基本的用户界面。
java gui实训课程设计Java GUI实训课程设计Java GUI(图形用户界面)是Java编程语言提供的一个强大的工具,用于创建交互式的用户界面。
在Java GUI实训课程设计中,学生将学习如何使用Java编写GUI应用程序,通过图形界面与用户进行交互。
在Java GUI实训课程设计中,学生将学习如何使用Java的图形库(如Swing或JavaFX)来创建窗口、按钮、文本框、标签等GUI 组件,并对这些组件进行布局和事件处理。
通过实践,学生将掌握GUI编程的基本概念和技巧,如界面设计、事件驱动编程、用户输入验证等。
在Java GUI实训课程设计中,学生通常会完成一个小型的GUI应用程序,例如一个简单的计算器或一个学生信息管理系统。
在这个过程中,学生需要进行需求分析、界面设计、编码实现和测试调试等多个阶段的工作。
他们需要根据用户需求设计界面,选择合适的组件并进行布局,编写事件处理代码以响应用户操作,并确保程序的稳定性和可靠性。
在Java GUI实训课程设计中,学生需要学习如何使用Java提供的GUI组件库来创建用户界面。
他们可以使用布局管理器来控制组件的位置和大小,使用事件监听器来处理用户的操作,还可以使用绘图工具来实现自定义的界面效果。
通过这些工具和技术,学生可以创建出美观、易用的GUI应用程序。
在Java GUI实训课程设计中,学生还需要学习如何进行调试和错误处理。
他们需要学会使用调试工具来查找和修复程序中的错误,以确保程序的正确运行。
同时,他们还需要学会处理用户输入的异常情况,例如输入非法字符或超出范围的数据等,以提高程序的健壮性和用户体验。
在Java GUI实训课程设计中,学生将面临一些挑战和难点。
例如,他们需要学会合理地设计界面,使之既美观又易用;他们还需要学会处理不同类型的事件,如按钮点击、鼠标移动等;他们还需要学会使用多线程来处理复杂的任务,以保持程序的响应性。
通过Java GUI实训课程设计,学生可以提高自己的编程能力和软件开发技巧。
如何使用Java编写简单的GUI应用程序1. 引言Java是一种流行的编程语言,广泛用于开发各种类型的应用程序。
GUI(图形用户界面)应用程序是其中一种常见的应用类型。
本文将介绍如何使用Java编写简单的GUI应用程序。
2. Java的GUI库Java提供了多种GUI库来开发图形界面应用程序,其中最常用的是Swing和JavaFX。
本文将着重介绍Swing库,因为它是Java标准库的一部分,并且易于学习和使用。
3. 准备工作在开始编写GUI应用之前,需要确保已经安装了Java开发环境(JDK)并配置好相应的环境变量。
可以通过在命令行中输入`java -version`来检查JDK的安装情况。
4. 创建GUI窗体首先,在Java中创建一个GUI窗体需要借助于Swing库中的JFrame类。
可以通过以下代码创建一个简单的GUI窗体: ```javaimport javax.swing.JFrame;public class MyGUIApp extends JFrame {public MyGUIApp() {// 设置窗体标题setTitle("My GUI App");// 设置窗体大小setSize(400, 300);// 设置默认关闭操作setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }public static void main(String[] args) {// 创建GUI窗体实例并显示MyGUIApp app = new MyGUIApp();app.setVisible(true);}}```通过继承JFrame类并实现自定义的构造方法,可以创建一个简单的GUI窗体。
在main方法中创建实例并通过setVisible方法显示出来。
5. 添加组件GUI应用程序不仅仅只有一个窗体,还需要添加各种组件(如按钮、文本框、标签等)来交互和展示数据。
如何使用Java编写GUI界面程序第一章:介绍Java GUI编程Java GUI(图形用户界面)编程是使用Java语言创建可视化应用程序的方法。
它可以通过使用Java提供的GUI库或框架来实现。
Java GUI编程提供了丰富的工具和组件,使得开发人员可以轻松创建具有丰富功能和交互性的用户界面。
第二章:设置开发环境在开始编写Java GUI程序之前,确保已经安装了Java Development Kit(JDK)和集成开发环境(IDE),如Eclipse或IntelliJ IDEA。
确保配置正确的Java运行时环境(JRE)。
第三章:了解Swing框架Java Swing是Java中最常用的GUI框架之一。
它提供了一系列强大的组件,如按钮、文本框、标签、列表和表格等,可以用于构建GUI界面。
熟悉Swing框架的API和使用方法是编写Java GUI程序的关键。
第四章:编写GUI界面使用Swing框架编写GUI界面时,通常需要创建一个顶层容器,如JFrame或JDialog。
然后,在容器中添加各种组件,如按钮、文本框和标签等。
可以使用布局管理器来控制组件的位置和大小。
还可以为组件添加事件处理程序以实现交互。
第五章:布局管理器布局管理器是用于控制组件在容器中的布局和排列的工具。
Java提供了几种布局管理器,如FlowLayout、BorderLayout和GridLayout等。
了解每种布局管理器的特点和用法,选择适合需求的布局管理器来创建用户界面。
第六章:事件处理Java GUI程序需要对用户的操作进行响应,并执行相应的操作。
可以使用事件处理机制来实现这一功能。
在Swing框架中,事件是通过添加监听器来处理的。
通过为组件添加适当的监听器,可以捕获和处理用户触发的事件。
第七章:图形和绘图Java GUI编程不仅限于简单的组件和布局,还可以通过绘图和图形操作来实现更复杂的效果。
Java提供了各种绘图相关的类和方法,如Graphics和Graphics2D等,可以在组件上绘制形状、图像和文本等。
一、实验目的1.掌握JA V A swing包的使用。
2.掌握JA V A swing 包中类的运用。
3. 运用JA V A swing 包完成一个简单的控件内容读。
二、实验内容1.采用较为灵活和复杂的网格包布局的方式,实现简单登陆的功能。
三、设计与实现过程import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;public class dialog implements ActionListener{private JTextField textField;private JPasswordField passwordField;private JFrame frame;private JLabel[] label;private JButton[] button;private Container con;private String username, password;private String[] binfor = {"登录:","退出:"};public void login(){String[] linfor = {"账号:","密码:"};frame = new JFrame("登录");frame.setSize(300, 180);frame.setLocation(460,260);frame.setResizable(false);con = frame.getContentPane();con.setLayout(null);textField = new JTextField();passwordField = new JPasswordField();textField.setSize(200,470/15);textField.setLocation(770/15,5);con.add(textField);passwordField.setSize(200, 470/15);passwordField.setLocation(770/15, 5 + (670/15));con.add(passwordField);button = new JButton[2];label = new JLabel[2];for(int i = 0; i < 2; i++){label[i] = new JLabel(linfor[i]);label[i].setLocation(5, 3 + (i * 670/15));label[i].setSize(570/15, 670/15);con.add(label[i]);button[i] = new JButton(binfor[i]);button[i].setLocation(440/15 + (i * 2000/15),1600/15);button[i].setSize(1570/15,370/15);button[i].addActionListener(this);con.add(button[i]);}frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent event) {if(event.getSource() == button[0]){username = textField.getText();password = passwordField.getText();System.out.println("输入的账号为" + username + '\n' + "输入的密码为" + password);}}}}四、设计技巧及体会:本次试验主要是学习JA V A语言中GUI的内容,懂得了如何用JA V A语言编写窗口界面,学会了swing中JFrame,类。
第十一章: GUI编程一.GUI -- Graphical User InterfaceAWT (抽象窗口工具集) AbstractWindow Toolkit为简单的applet程序设计AWT没有提供足够的桌面端的程序所需的特性它不适宜用来构建丰富的桌面图形界面SwingSwing是AWT的扩展和功能加强是构建java图形界面标准的APISWT (Standard Widget Toolkit)是一个开源的GUI编程框架SWT是IBM为它的Eclipse集成开发环境而开发的图形用户界面工具AWTAWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application 的GUI (Graphics User Interface 图形用户界面)编程。
GUI的各种元素(如:窗口,按钮,文本框等)由Java 类来实现。
AWT所涉及的类一般在java.awt包及其子包中。
Container和Component是AWT中的两个核心类。
Modal ModelessComponent & ContainerJava的图形用户界面的最基本组成部分是Component ,Component 类及其子类的对象用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素,例如,一个按钮,一个标签等。
一般的Component对象不能独立地显示出来,必须将“放在”某一的Container对象中才可以显示出来。
Container是Component子类,Container子类对象可以“容纳”别的Component 对象。
Container对象可使用方法add(..)向其中添加其他Component对象。
Containter是Component的子类,因此Containter对象也可以被当作Component对象添加到其他Container对象中。
有两种常用的Containter:Window: 其对象表示自由停泊的顶级窗口Panel: 其对象可作为容纳其它Component对象,但不能独立存在,必须被添加到其它Containner中(如Window 或Applet)FrameFrame是Window的子类,由Frame或其子类创建的对象为一个窗体。
实训报告实验11 JA V A GUI设计(1)【实验目的】1.掌握JAVA语言GUI设计的概念。
2.掌握JAVA系统组件类的继承层次关系。
3.掌握JAVA语言系统常用组件类的功能和使用。
4.掌握JAVA GUI 事件处理机制的原理。
【预习内容】1.JAVA Component类的功能;2.JAVA 容器与非容器的概念;3.JAVA 顶级容器与普通容器的区别;4.JAVA对话框的分类及功能;【实验内容及步骤】上机验证题1.利用JoptionPane类编程实现如下的对话框界面:[程序清单]import javax.swing.JOptionPane;public class add{public static void main(String args[]){String firstNumber;String secondNumber;int number1;int number2;int sum;firstNumber=JOptionPane.showInputDialog("enter first integer");//显示提示消息secondNumber=JOptionPane.showInputDialog("enter second integer"); number1=Integer.parseInt(firstNumber);//属于输入诓礷firstNumber的变量 number2=Integer.parseInt(secondNumber);sum=number1+number2;JOptionPane.showMessageDialog(null,"the sumis"+sum,"result",JOptionPane.PLAIN_MESSAGE);System.exit(0);//注意showMessageDialog与showInputDialog的区别}}[程序运行过程]2. 编程实现如下的系统登录界面:【示例】[程序清单]import java.awt.*;import java.awt.event.*;public class Login extends Frame implements ActionListener {Label username=new Label("Username");//使用文本创建一个用户名标签TextField t1=new TextField();//创建一个文本框对象Label password=new Label("Password");//创建一个密码标签TextField t2=new TextField();Button b1=new Button("login");//创建登陆按钮Button b2=new Button("cancel");//创建取消按钮public Login (){this.setTitle("Login");//设置窗口标题this.setLayout(null);//设置窗口布局管理器username.setBounds(50,40,60,20);//设置姓名标签的初始位置this.add(username);// 将姓名标签组件添加到容器t1.setBounds(120,40,80,20);// 设置文本框的初始位置this.add(t1);// 将文本框组件添加到容器password.setBounds(50,100,60,20);//密码标签的初始位置this.add(password);//将密码标签组件添加到容器t2.setBounds(120,100,80,20);//设置密码标签的初始位置this.add(t2);//将密码标签组件添加到容器b1.setBounds(50,150,60,20);//设置登陆按钮的初始位置this.add(b1);//将登陆按钮组件添加到容器b2.setBounds(120,150,60,20);//设置取消按钮的初始位置this.add(b2);// 将取消按钮组件添加到容器b1.addActionListener(this);//给登陆按钮添加监听器b2.addActionListener(this);// 给取消按钮添加监听器this.setVisible(true);//设置窗口的可见性this.setSize(300,200);//设置窗口的大小addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e) {System.exit(0);}});//通过内部类重写关闭窗体的方法}public void actionPerformed(ActionEvent e){if (e.getSource()==b1)//处理登陆事件{String username=t1.getText();String password=t2.getText();if(username.equals("08050214")&&password.equals("123456")) {new Login();}}}public static void main(String args[])//主函数{new Login ();}}[程序运行过程]3. 编程实现如下的计算器界面:[程序清单]import java.awt.BorderLayout;import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator{public static void main(String args[]){CalculatorFrame calculatorFrame=new CalculatorFrame ( );calculatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);calculatorFrame.setSize(200,200);calculatorFrame.setVisible(true);}}class CalculatorFrame extends JFrame{p rivate JButton keys[];p rivate JPanel keyPadJPanel;p rivate JTextField lcdJTextField;p ublic CalculatorFrame(){setTitle("Calculator");lcdJTextField =new JTextField(20);lcdJTextField.setEditable(true);keys =new JButton[16];for(int i=0;i<=9;i++)keys[i]=new JButton(String.valueOf(i));keys[10]=new JButton("/");keys[11]=new JButton("*");keys[12]=new JButton("-");keys[13]=new JButton("+");keys[14]=new JButton("=");keys[15]=new JButton(".");keyPadJPanel=new JPanel();keyPadJPanel.setLayout(new GridLayout(4,4));for(int i=7;i<=10;i++)keyPadJPanel.add(keys[i]);for(int i=4;i<=6;i++)keyPadJPanel.add(keys[i]);keyPadJPanel.add(keys[11]);for(int i=1;i<=3;i++)keyPadJPanel.add(keys[i]);keyPadJPanel.add(keys[12]);keyPadJPanel.add(keys[0]);for(int i=15;i>=13;i--)keyPadJPanel.add(keys[i]);add(lcdJTextField,BorderLayout.NORTH);add(keyPadJPanel,BorderLayout.CENTER);}}[程序运行过程]4. 运行以下程序,并理解程序运行的结果?[程序清单]import java.io.*;public class ExceptionTest{public static void main(String args[]) {for(int i = 0; i < 4;i++) {int k;try {switch( i ) {case 0: //divided by zeroint zero = 0;k = 911 / zero;break;case 1: //null pointerint b[ ] = null;k = b[0];break;case 2: //array index out of boundint c[ ] = new int[2];k = c[9];break;case 3: //string index out of boundchar ch = "abc".charAt(99);break;}}catch(Exception e) {System.out.println("\nTestcase #" + i + "\n");System.out.println(e);}}}}[程序运行结果(截图)][程序功能分析]利用for循环语句实现4次运行,再利用switch语句实现的输出提示语。
实验十一 Java的GUI编程初步程序清单11-1//ButtonCounter.javaimport javax.swing.*;import java.awt.*;public class ButtonCounter extends JFrame {public ButtonCounter() {super("显示按钮窗口");ImageIcon Icon = new ImageIcon("image/image.gif");JButton jbt1 = new JButton("按钮",Icon);JButton jbt2 = new JButton("按钮",Icon);JButton jbt3 = new JButton("按钮",Icon);JPanel p1 = new JPanel();p1.add(jbt1);JPanel p2 = new JPanel();p2.add(jbt2);JPanel p3 = new JPanel();p2.add(jbt3);JPanel p4=new JPanel();p4.add(jbt2);JPanel p5=new JPanel();p5.add(jbt3);getContentPane().setLayout(new FlowLayout());getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);getContentPane().add(p4);getContentPane().add(p5);}public static void main(String[] args) {// Create a frame and set its propertiesJFrame frame = new ButtonCounter();frame.pack();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}程序清单11-2://PasswordVerification.java1import javax.swing.*;2import java.awt.event.*;3import java.awt.*;4public class PasswordVerification extends JFrame implements ActionListener{5JLabel userLabel;//定义用户标签提示6JLabel passwordLabel;//定义密码标签提示7JTextField userText;//定义用户文本框8JPasswordField passwordText;//定义密码文本框9int count=1;//统计输入信息的次数10public PasswordVerification() {11super("请输入信息");12得到容器对象container;13container.setLayout(new FlowLayout());//设置默认布局1415创建密码标签1617创建密码输入文本框18//注册事件监听者;19container.add(userLabel);20container.add(userText);21container.add(passwordLabel);22container.add(passwordText);23setSize(240,100);24setVisible(true);25}26事件处理27String userName=new String("陈三");//假设为正确的用户名;28String password=new String("12345678");//假设为正确的密码;29if(e.getSource()==passwordText){30count++;31char[] passwords=passwordText.getPassword();32if(userText.getText().equals(userName)&&password.equals(new String(passwords)))33{34JOptionPane.showMessageDialog(null, "欢迎您:" + userName);35System.exit(0);36}37else if(count>3)38System.exit(0);39else{40JOptionPane.showMessageDialog(null,userText.getText()+"请输入正确信息");41}42}43}44public static void main(String args[]){45PasswordVerification pv=new PasswordVerification();46pv.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);47}48}程序清单11-3://CardManager.java1import javax.swing.*;2import java.awt.*;3import java.awt.event.*;4public class CardManager extends JFrame{5JLabel nameLabel,sexLabel,titleLabel,unitLabel;6JLabeladdressLabel,telLabel1,telLabel2,mobileLabel,faxLabel,emailLabel;7JTextField nameTxt,unitTxt,addressTxt;8JTextField telTxt1,telTxt2,mobileTxt,faxTxt,emailTxt;9JRadioButton sexBtn1,sexBtn2;10JComboBox titleBx;11JButton okBtn,cancelBtn;12public CardManager() {13super("名片录入管理");14Container c=getContentPane();15JPanel centerPanel=new JPanel();//输入面板16nameLabel=new JLabel("姓名");//定义姓名标签17nameTxt=new JTextField(10);//定义姓名文本输入框18centerPanel.add(nameLabel);19centerPanel.add(nameTxt);20sexLabel=new JLabel("性别");//定义性别标签21定义性别单选按钮122;//定义性别单选按钮223ButtonGroup group=new ButtonGroup();24group.add(sexBtn1);25group.add(sexBtn2);26centerPanel.add(sexLabel);27centerPanel.add(sexBtn1);28centerPanel.add(sexBtn2);29titleLabel=new JLabel("称谓");//定义称谓标签30String title[]={"总裁","总经理","经理","主任","处长","院长","校长","科长","教授","讲师"};//定义称谓内容31创建称谓文本输入框32titleBx.setMaximumRowCount(5);33centerPanel.add(titleLabel);34centerPanel.add(titleBx);35unitLabel=new JLabel("工作单位");//定义工作单位标签36unitTxt=new JTextField(30);//定义工作单位输入框37centerPanel.add(unitLabel);38centerPanel.add(unitTxt);39addressLabel=new JLabel("工作地址");//定义工作地址标签40addressTxt=new JTextField(30); //定义工作地址输入框41centerPanel.add(addressLabel);42centerPanel.add(addressTxt);43telLabel1=new JLabel("电话");//定义电话1标签44telTxt1=new JTextField(15);//定义电话1输入框45centerPanel.add(telLabel1);46centerPanel.add(telTxt1);47telLabel2=new JLabel("电话");//定义电话2标签48telTxt2=new JTextField(15); //定义电话2输入框49centerPanel.add(telLabel2);50centerPanel.add(telTxt2);51mobileLabel=new JLabel("手机");//定义手机标签52mobileTxt=new JTextField(15); //定义手机输入框53centerPanel.add(mobileLabel);54centerPanel.add(mobileTxt);55faxLabel=new JLabel("传真");//定义传真标签56faxTxt=new JTextField(15);//定义传真输入框57centerPanel.add(faxLabel);58centerPanel.add(faxTxt);59emailLabel=new JLabel("E-mail");//定义email标签60emailTxt=new JTextField(32);//定义email输入框61centerPanel.add(emailLabel);62centerPanel.add(emailTxt);63JPanel sPanel=new JPanel();//按钮面板64okBtn=new JButton("确定");//定义确定按钮65cancelBtn=new JButton("取消");//定义取消按钮66监视cancelBtn的动作67public void actionPerformed(ActionEvent e){68判断事件源是否是cancelBtn;69System.exit(0);70}71}72});73sPanel.add(okBtn);74sPanel.add(cancelBtn);75 c.setLayout(new BorderLayout());76将centerPanel放置c中的中间位置;77sPanel 放置c中的南面的位置;78setSize(418,250);79setVisible(true);80}81public static void main(String args[]){82CardManager cm=new CardManager();83cm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);84}85}程序清单11-4//ArtFont.javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class ArtFont extends JFrame implements ActionListener{JComboBox fontType,fontSize;JCheckBox boldBx;//粗体按钮JCheckBox italicBx;//斜体按钮JButton colorBtn;//颜色按钮;String[] fontNames;//字体名称;String[] fontSizes;//字体尺寸;JLabel label;//输入提示标签;JTextField inputText;//文字输入框;JTextArea txtArea;//文字显示区;JPanel fontPanel;//字体设置;JPanel showPanel;//显示效果区Font font;int boldStyle,italicStyle,underlineStyle;int fontSizeStyle;String fontNameStyle;Color colorStyle=Color.black;//设置字体的默认颜色为黑色;public ArtFont() {super("字体设置");//设置默认字体boldStyle=0;italicStyle=0;underlineStyle=0;fontSizeStyle=10;fontNameStyle="宋体";font=new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle);fontPanel=new JPanel();fontPanel.setLayout(new FlowLayout());//设置字体名字GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames=ge.getAvailableFontFamilyNames();//获得系统中所有字体的名字;fontType=new JComboBox(fontNames);fontType.setEditable(false);fontType.setMaximumRowCount(10);fontType.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){ //实现监听字体名字改变的事件}});//设置字体大小fontSizes=new String[63];for(int i=0;i<63;i++){fontSizes[i]=Integer.toString((i+10));}fontSize=new JComboBox(fontSizes);fontSize.setEditable(false);fontSize.setMaximumRowCount(10);fontSize.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){ //实现监听字体大小改变的方法}});//设置粗体选择按钮;boldBx=new JCheckBox("粗体");boldBx.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){ //实现监听选择粗体状态改变的方法}});//设置斜体选择按钮;italicBx=new JCheckBox("斜体");italicBx.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){//实现监听选择斜体状态改变的方法}}});//设置颜色选择;colorBtn=new JButton("颜色");colorBtn.addActionListener(this);//监听颜色按钮 //设置字体面板;fontPanel.add(fontType);fontPanel.add(fontSize);fontPanel.add(boldBx);fontPanel.add(italicBx);fontPanel.add(colorBtn);//设置输入提示标签label=new JLabel("输入");//设置文本输入框;inputText=new JTextField(30);inputText.addActionListener(this);//设置文本显示区;txtArea=new JTextArea(10,80);//20行80列;txtArea.setFont(font);//设置文本面板;showPanel=new JPanel();showPanel.add(label);showPanel.add(inputText);showPanel.setLayout(new FlowLayout());showPanel.add(new JScrollPane(txtArea));//设置容器;Container container=getContentPane();container.setLayout(new BorderLayout());container.add(fontPanel,BorderLayout.NORTH);container.add(showPanel,BorderLayout.CENTER);setSize(500,300);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==colorBtn){//改变颜色colorStyle=JColorChooser.showDialog(this,"选择字体颜色",colorStyle); colorBtn.setForeground(colorStyle);txtArea.setForeground(colorStyle);}else if(e.getSource()==inputText){//将输入文字在文字显示区表示;txtArea.setText(inputText.getText());}}public static void main(String args[]){ArtFont artFont=new ArtFont();artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}程序清单11-5//Knight.javapublic class Knight {protected int x;//x坐标;protected int y;//y坐标;protected pos;//移动的方向;public Knight() {this.x=0;this.y=0;this.pos=0;}public Knight(int curX,int curY,int curDir){//设置马的属性; this.x=curX;this.y=curY;this.pos=curDir;}public void setX(int curX){//设置x坐标this.x=curX;}public void setY(int curY){//设置y坐标this.y=curY;}public void setPos(int curDir){//设置移动方向this.pos=curDir;}public int getX(){//获得x坐标return this.x;}public int getY(){//获得y坐标return this.y;}public int getPos(){//获得当前的移动方向;return this.pos;}}程序清单11-6//KnightTourGame.javaimport javax.swing.*;import java.awt.event.*;public class KnightTourGame extends JFrame implements ActionListener{private JDesktopPane jDeskPanel;//菜单定义;private JMenuBar gameBar;//菜单条private JMenu gameMenu,helpMenu;//游戏菜单和帮助菜单private JMenuItem startItem,exitItem,helpItem,versionItem;//startItem开始菜单项、exitItem退出菜单项、helpItem关于菜单项//versionItem版本菜单项public KnightTourGame(){super("Knight Tour 问题");createMenu();//创建菜单;setJMenuBar(gameBar);//设置菜单;jDeskPanel=new JDesktopPane();//设置多文档的桌面getContentPane().add(jDeskPanel);//添加多文档的桌面setSize(700,600);setVisible(true);}public void createMenu(){//创建菜单创建菜单条创建菜单项”游戏”创建子菜单项“开始”创建子菜单项“退出”startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));//设置快捷键Alt+1;exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,ActionEvent.ALT_MASK));//设置快捷键Alt+2;添加开始菜单到游戏菜单添加退出菜单到游戏菜单;startItem.addActionListener(this);exitItem.addActionListener(this);创建菜单项“帮助”创建子菜单项“版本”helpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3,ActionEvent .ALT_MASK));//设置快捷键Alt+3versionItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4,ActionEvent.ALT_MASK));//设置快捷键Alt+4添加关于子菜单到帮助菜单添加版本子菜单到帮助菜单helpItem.addActionListener(this);versionItem.addActionListener(this);gameBar.add(gameMenu); //添加游戏菜单到菜单条gameBar中gameBar.add(helpMenu); //添加帮助菜单到菜单条gameBar中}public void actionPerformed(ActionEvent e){if(e.getSource()==startItem){JInternalFrame mainFrame=new JInternalFrame("Knight Tour游戏",true,true,true,true);//定义一个游戏运行窗口KnightTourPanel mainPanel=new KnightTourPanel();//创建游戏控制面板对象mainPanel,KnightTourPanel类需要用户自己定义;mainFrame.getContentPane().add(mainPanel);//将游戏控制面板添加到游戏运行窗口mainFrame.setSize(460,530);jDeskPanel.add(mainFrame);//添加游戏运行窗口到桌面中;mainFrame.setVisible(true);}else if(e.getSource()==exitItem){System.exit(0);}else if(e.getSource()==helpItem){JOptionPane.showMessageDialog(null,“暂时没有”);}else if(e.getSource()==versionItem){JOptionPane.showMessageDialog(null," 作者:陈轶\n时间:2005年"); }}public static void main(String args[]){KnightTourGame ktg=new KnightTourGame();ktg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}。