实验九-图形用户界面与对话框

合集下载

实验9 图形用户界面

实验9  图形用户界面

实验9 图形用户界面一、实验目的初步掌握图形用户界面工具包的使用技术,初步掌握设计和构造用户界面中基本图形的方法。

了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,事件响应机制,理解和掌握图形用户界面系统中人机交互功能的实现技术。

了解Java提供的框架、面板、滚动面板等各种容器和各种布局控件的使用方法。

二、实验要求1. 理解并掌握Applet程序的生命周期。

2. 掌握Font类的构造方法和成员方法。

3. 掌握Color类的构造方法、数据成员常量和成员方法。

4. 掌握Polygon类的构造方法和成员方法。

5. 掌握Graphics类用于绘制各种几何图形的方法。

6. 掌握在A pplet 容器中添加组件的方法。

7. 了解J ava Swing 组件的使用方法。

8.掌握常用布局类的使用。

9.掌握容器Jpanel及JFrame容器的使用方法。

10.理解J ava 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

11. 掌握编写独立运行的窗口界面的方法。

三、实验内容(一)文字与图形GUI设计1.程序功能:本程序包含A pplet 的4个与生命周期相关的方法init()、start()、stop ()、destroy()。

程序中创建了自定义方法a ddWords()来显示相应的字符串。

addWords 方法首先在标准输出即屏幕上显示字符串参数,然后将字符串添加到字符串缓冲区b uffer,通过调用r epaint 方法重画页面,首先自动调用u pdate 方法将当前画面清空,然后再调用p aint 方法在指定位置显示字符串。

编写L X12_1.java 程序文件,源代码如下。

import java.applet.Applet;import java.awt.Graphics;public class LX12_1 extends Applet {StringBuffer buffer=new StringBuffer();public void init() {addWords("执行了初始化方法 init()...");}public void start() {addWords("执行了开始方法s tart()...");}public void stop() {addWords("执行了停止方法s top()...");}public void destroy() {addWords("执行了清除方法d estroy()...");}void addWords(String s) {System.out.println(s);buffer.append(s);repaint();}public void paint(Graphics g) {g.drawString(buffer.toString(),5,15);}}2.在Applet中输出自己的名字、班级及学号,要求名字设置为24号黑体,班级以及学号设置为16号加粗斜宋体。

实验 图形用户界面2

实验 图形用户界面2

实验图形用户界面2 (4学时)【实验目的】1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。

【实验要求】1. 掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。

2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

3. 掌握编写独立运行的窗口界面的方法。

4. 了解Java Swing 组件的使用方法。

5. 了解对话框的使用方法。

【实验内容】三.在Applet容器中添加组件的方法1.创建一个小应用程序,在其中添加组件(1)程序功能:在用户名及电话号码中输入完信息后,信息显示在最上面的文本域中;点击显示按钮,在相应的文本框中显示;点击退出按钮退出程序。

(2)编写appletTest.java 程序文件,源代码如下。

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class appletTest extends JApplet implements ActionListener { Button btn1, btn2;TextField f,tf1,tf2;TextArea Area;JPanel pane1,pane2,pane3;Container pane;public void init() {setSize(500,300);pane=getContentPane();pane1= new JPanel();pane2= new JPanel();pane3= new JPanel();pane.setLayout(new GridLayout(1,3));pane.add(pane1);pane.add(pane2);pane.add(pane3);setLayout(new GridLayout(3,3));Area=new TextArea (4,40);tf1=new TextField(10); tf2=new TextField(10);btn1=new Button("显示"); btn2=new Button("退出");f=new TextField(20);pane1.add(Area); pane2.add(new Label("用户名"));pane2.add(tf1); pane2.add(new Label("电话"));pane2.add(tf2); pane3.add(f); pane3.add(btn1); pane3.add(btn2);tf1.addActionListener(this); tf2.addActionListener(this);btn1.addActionListener(this); btn2.addActionListener(this);}public void actionPerformed(ActionEvent e) {if (e.getSource()==btn1)f.setText("你按下了“" + e.getActionCommand() + "”按钮");if (e.getSource()==tf1)Area.append("用户名:"+tf1.getText()+"\n");if (e.getSource()==tf2)Area.append("电话:"+tf2.getText()+"\n");if (e.getSource()==btn2) {System.exit(0);}}}(3)编译并运行程序。

python图形用户界面实验报告

python图形用户界面实验报告

python图形用户界面实验报告本实验主要是介绍Python图形用户界面(GUI)的基本概念和使用方法,包括使用Python 中的Tkinter模块创建GUI应用程序的基本结构、常用控件和事件处理方式。

一、实验目的1.掌握Python图形用户界面(GUI)的基本概念和使用方法。

2.学习使用Python中的Tkinter模块创建GUI应用程序。

3.了解在Tkinter中使用控件和事件处理方式。

二、实验内容1.创建基本的GUI应用程序Python的Tkinter模块提供了一系列GUI控件,如Label、Button、Entry、Canvas、Menu等。

下面我们将介绍如何使用Tkinter创建一个基本的GUI应用程序。

代码如下:```from tkinter import *#创建主窗口root = Tk()#设置窗口标题root.title("我的第一个GUI程序")#设置窗口大小(宽x高)root.geometry('400x300')# 创建一个Label控件label = Label(root, text="欢迎来到Python世界!")# 将Label控件添加到主窗口label.pack()#进入消息循环root.mainloop()```上述代码中,我们首先导入了Tkinter模块,然后创建了一个名为root的主窗口。

接下来,我们设置了窗口的标题和大小,并创建了一个Label(标签)控件,文本为“欢迎来到Python 世界!”并将其添加到主窗口。

最后,我们调用root.mainloop()方法以便程序能够执行GUI循环。

2.GUI控件的使用下面介绍一些常用的Tkinter控件的用法。

其中,控件的属性和方法的详细说明可参考Python 官方文档或其它相关资料。

Label(标签)控件Label控件用来显示文本或图像。

如下是一个Label控件的例子:```label = Label(root, text="Hello, world!")label.pack()```Button(按钮)控件Button控件用来响应用户点击事件。

java图形用户界面实验报告

java图形用户界面实验报告

java图形用户界面实验报告
《Java图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用Java图形用户界面(GUI)工具,掌握Java程序设计的
基本原理和方法,加深对Java语言的理解和应用。

二、实验内容
1. 使用Java的Swing和AWT等图形用户界面工具,设计一个简单的窗口界面。

2. 在窗口中添加按钮、文本框、标签等组件,并实现相应的事件处理。

3. 编写Java代码,实现窗口界面的布局和交互功能。

三、实验步骤
1. 首先,创建一个新的Java项目,并新建一个窗口类。

2. 在窗口类中使用Swing和AWT工具,设计窗口界面,并添加所需的组件。

3. 编写事件处理方法,实现按钮点击、文本框输入等操作的响应。

4. 调试和运行程序,检查窗口界面的布局和功能是否符合预期。

四、实验结果
经过一系列的编码和调试,最终实现了一个简单的Java图形用户界面程序。


程序具有良好的界面布局和交互功能,用户可以通过按钮点击和文本框输入进
行相应的操作。

五、实验总结
通过本次实验,我深入理解了Java图形用户界面的设计原理和实现方法,掌握
了Swing和AWT等GUI工具的使用技巧。

在今后的学习和工作中,我将继续
加强对Java编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。

第9次实验教案_图形用户界面程序设计

第9次实验教案_图形用户界面程序设计

实验9 图形用户界面程序设计实验目的:1、通过编写程序掌握按钮、标签、文本框、菜单的使用方法2、掌握ActionEvent、ItemEvent事件类接口监听器的产生,添加方法3、掌握复选框、的创建与常用的使用方法4、掌握以上各控件的事件响应过程及相应的处理方法实验内容:(使用Jbuilder2005编写Application)一、新建主类及主窗体1.新建工程:【file】-【new project】,输入工程名Tes9;2.新建Application:【file】-【new General】-Application,输入工程名主类名(class name 如图琐事),点击【next】,输入主窗体名:TestFrame,和标题栏文字“实验9主窗体”;3.在打开的主窗体中点击【UI】视图,添加一个Swing控件:“File JMenuBar”如图所示;4.点击主窗体中【Menu】视图,添加菜单后,运行界面如下图所示:二、新建“设置标签颜色”窗体1.新建窗体:【new】-【Greneral-Frame】,在代码视图中,找到jbInit()方法设置窗体大小及标题,语句如下:this.setSize(360,140); this.setTitle("设置标签颜色");2.在窗体中加入两个按钮名分别为“红色”,“蓝色”,还有一标签,其中显示的内容为“hello,world”,要求按“红色”按钮时标签中的文字变为红色,按“蓝色”按钮时标签中文字显示蓝色,程序界面如下图所示:提示:使用jLabel1.setForeground(Color.RED);来改变标签的字体颜色。

3.在主窗体中的代码视图中定义成员变量Frame1 f;4.然后进入主窗体的设计视图,对主菜单编程,双击鼠标(如图所示),输入代码:f1=new Frame1();f1.setVisible(true);三、新建其它3个窗体1、“设置标签字体”窗体中有:三个单选按钮名称分别为:“宋体”、“隶书”、“楷体”;二个复选框名称分别为:“加粗”、“倾斜”;一个标签,标签中显示内容为“计算机”;要求程序执行时选择不同的选项时标签中的文字会发生相应的变化提示:➢设置字体的语句:Font a=new Font("楷体",Font.PLAIN,24);//Font.ITALIC斜体;Font.PLAIN正常;Font.BOLD粗体;jl.setFont(a);➢判断复选框是否被选中的方法:AWT组件:cb1.getState(),如果是true表示复选框cb1被选中;swing组件:jcb1.isSelected(),如果是true表示复选框cb1被选中。

10_图形用户界面

10_图形用户界面

容器类(Container)也是Component类的子类,它可以容纳其它组件,提供层 次化的复杂外观。
Window类和Panel类是容器类的子类,GUI设计的一个主要工作就是容器中 “摆放”组件。
计算机与信息技术学院
Java语言 程序设计
Swing组件层次关系
Java工程师系列
计算机与信息技术学院
(2)指定布局(Layout): 根据具体需要排列它们的位置关系。 (3)响应事件(Event): 定义图形用户界面的事件和各界面元素对不同事件的响应, 从 而实现图形用户界面与用户的交互功能。
计算机与信息技术学院
Java语言 程序设计
10.3 布局管理LayoutManager
Java工程师系列
10.1 图形用户界面概述
Java工程师系列
大部分交互式应用具有GUI外观。Java的外观由GUI组件构成, 例如窗口,菜单,按钮,滚动条,列表框等。
Java早期用AWT开发图形用户界面。AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,其中包含了一套与本地操作系统 图形库交互的接口。
计算机与信息技术学院
Java语言 程序设计
布局管理器总结

Java工程师系列源自Frame Frame是一个顶级窗口。 Frame的缺省布局管理器为BorderLayout。 Panel Panel无法单独显示,必须添加到某个容器中。 Panel的缺省布局管理器为FlowLayout。 当把Panel作为一个组件添加到某个容器中后,该Panel仍然可以有自 己的布局管理器。因此,可以利用Panel使得BorderLayout中某个区域 显示多个组件。

实验九Java图形用户界面设计1

实验九Java图形用户界面设计(1)一实验目的(1)掌握Frame与面板的使用(2)布局管理器的使用(3)布局管理器的使用(4)边界风格的使用(5)掌握简单Java事件的处理二实验内容1、创建并显示一个标题为“My Frame”,背景色为白色,大小为1000×1000的框架。

在该框架中放置八个按钮,按钮的标题分别为“按钮1”、……“按钮8”。

采用FlowLayout布局管理器。

程序:import java.awt.*;import javax.swing.*;public class Con1{private JFrame f;private JButton b1,b2,b3,b4,b5,b6,b7,b8;public static void main(String args[]){Con1 c=new Con1();c.go();}public void go(){f=new JFrame("My Frame");Container con=f.getContentPane();con.setLayout(new FlowLayout());con.setBackground(Color.white);con.setLayout(new FlowLayout(FlowLayout.RIGHT,920,50));b1=new JButton("按键1");b2=new JButton("按键2");b3=new JButton("按键3");b4=new JButton("按键4");b5=new JButton("按键5");b6=new JButton("按键6");b7=new JButton("按键7");b8=new JButton("按键8");con.add(b1); c on.add(b2); c on.add(b3); c on.add(b4);con.add(b5); c on.add(b6); c on.add(b7); c on.add(b8);f.setSize(1000,1000);f.setVisible(true);}}结果:2、编写一个java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为网格式布局管理器,往窗口中加入9个按钮程序:结果:3、编写一个java程序,单击窗口的“关闭”按钮时退出程序,使用BorderFactory的静态方法创建边界,运行效果如下图所示:结果:4、构造一个Frame窗口,单击窗口的“关闭”按钮时退出程序(参考JFrame的setDefaultCloseOperation方法);Frame中包含一个“Presss Me”按钮,单击该按钮,在控制台显示单击次数:“你已经单击按钮X次!”。

实验室对话框实验报告(3篇)

第1篇实验名称:基于对话框的用户交互实验实验日期:2023年4月10日实验地点:计算机科学与技术实验室实验人员:张三、李四、王五实验目的:1. 理解对话框在软件开发中的作用和分类。

2. 掌握对话框的设计与实现方法。

3. 通过实际操作,提高对对话框编程的理解和应用能力。

实验内容:1. 对话框的分类及作用。

2. 对话框的设计与实现。

3. 对话框在实际项目中的应用。

实验步骤:一、对话框的分类及作用1. 介绍对话框的分类:消息框、输入框、单选框、复选框、列表框等。

2. 阐述对话框的作用:提供用户与程序交互的界面,收集用户输入的数据,反馈操作结果等。

二、对话框的设计与实现1. 创建一个简单的消息框,展示操作结果。

2. 设计一个输入框,实现用户输入数据的功能。

3. 实现单选框和复选框,让用户进行选择。

4. 设计一个列表框,展示多个选项供用户选择。

三、对话框在实际项目中的应用1. 介绍对话框在办公自动化软件中的应用。

2. 分析对话框在在线教育平台中的应用。

3. 探讨对话框在游戏开发中的应用。

实验结果与分析:一、对话框的分类及作用通过实验,我们了解到对话框在软件开发中具有重要作用,能够提高用户体验,使程序更加友好。

不同类型的对话框满足了不同的需求,如消息框用于提示用户,输入框用于收集用户数据,单选框和复选框用于用户选择,列表框用于展示多个选项。

二、对话框的设计与实现1. 消息框:通过弹出一个对话框,展示操作结果,如成功或失败信息。

2. 输入框:设计一个输入框,让用户输入数据,如姓名、电话等。

3. 单选框和复选框:实现单选框和复选框,让用户在多个选项中选择一个或多个。

4. 列表框:设计一个列表框,展示多个选项供用户选择,如城市、产品等。

三、对话框在实际项目中的应用1. 办公自动化软件:对话框在办公自动化软件中广泛应用于文件保存、数据输入、操作提示等方面。

2. 在线教育平台:对话框在在线教育平台中用于展示课程信息、收集用户反馈、实现用户登录等功能。

《java程序设计》实验指导书(09高职)

实验一 Java实验环境的建立一、实验目的1.掌握Java编程环境的搭建过程;2.掌握Jcreator pro软件的使用方法;3.能使用Java doc文档。

二、实验内容1.下载并安装JDK1.6,配置JDK环境变量;2.下载Javadoc压缩包并解压在JDK安装路径下;3.下载Jcreator pro 4.0并安装和配置使用环境;4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。

①Java application程序代码如下:public class HelloJava{public static void main(String args[]){System.out.println("Hello Java!");}}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){g.drawString("Hello!",30,30);}}三、试验要求1、预习试验内容并写出上机报告。

2、实验中出现的问题及实验体会。

实验二 Java语言程序设计训练一、实验目的:1.输入、输出操作实现原理和方法2.掌握程序流程控制的实现方法3.掌握数组的定义和操作方法二、实验内容1.计算 Result=1!+2!+3!+ (10)2.计算1---50之间所有素数的和。

3. 产生10个100之内的随机整数输出,并把这10个数按从小到大的顺序输出。

4. 随机产生20个50~100间的整数,输出这20个数并找出最大数及最小数输出。

5.试编写程序,实现求几何形状(长方形、正方形、圆形)的周长、面积。

(可任选其一)6.验证书中的例题。

三、试验要求1、预习试验内容并写出上机报告。

2、实验中出现的问题及实验体会。

matlab2011教程之九—图形用户界面(GUI)

第 9 章 图形用户界面GUI 图形用户界面(Graphical User Interfaces ,GUI)是由窗、轴、按键、菜单、工具图标、文字说明等对象(Objects)构成的一个用户界面。

用户通过鼠标或键盘选择、激活这些图形对象,实现计算、绘制图表和产生动画等。

图形用户界面不仅形象生动、界面友善、操控灵活,而且为人们提供了定性定量结合、局域全域结合、时域频域结合、模拟数字结合的数据探索、科学分析的仿真平台。

图形用户界面的出现,使过往视为经典的一些方法和技巧逐趋暗淡失色,而新的方法和技巧则日渐彩华升腾,人们的研发理念和思维方式已经和正在发生深刻的变化。

本书作者正是出于这种认识组织本章内容的。

图形用户界面开发工具(Graphical User Interface Development Environment,GUIDE),简称界面开发工具,是一种程式性的设计工具。

使用GUIDE设计界面遵循一定的设计步骤,而较少依赖技巧。

MATLAB 新版本倡导使用GUIDE开发图形用户界面。

为此,本章以四个节次五个算例介绍了GUIDE的功能和用法、界面控件的机理和属性、各种控件、菜单、图标的详细制作步骤。

与此同时,本章还有少量篇幅用以介绍“图形用户界面的手工设计法”。

编写这部分内容的目的在于:一,其本身简明;二,它能帮助读者更好地理解用户界面的工作机理。

本章所有算例界面都是彩色的,请读者从随书光盘mbook目录上的“ch09_图形用户界面.doc”文件中查看;而实现界面所需的带exm前缀文件名的M文件和FIG文件则都存放在随书光盘mfile目录上。

9.1设计原则和一般步骤9.1.1设计原则9.1.2一般制作步骤9.2借助GUIDE创建GUI9.2.1GUIDE通览1 GUIDE的启动图9.2-1 显示模板预览的GUIDE Quick Start对话窗 2 Preferences 设置对版面编辑器的影响图9.2-2 带空白模板的GUIDE3 GUIDE的功能分区(1)版面设计区(2)工具条和菜单条4待设计用户界面的性状预设图9.2-3 未来界面窗性状设置对话窗(1)未来界面窗的缩放性(2)未来界面窗的访问权限(3)涉及界面窗的其他设置5设计区的坐标参照和位置编排器(1)版面设计区的坐标参照系图9.2-4 “格尺”对话框(默认状态)图9.2-5 设计辅助工具和功能(2)组件位置编排器图9.2-6 编排器对三个组件进行对中处理 6控件组件属性值的初始设置(1)控件或组件属性值初始设置的必要性(2)在GUIDE中设置控件或组件属性值的方式(3)对象属性观察器的引出(4)属性观察器简介(图9.2-7)图9.2-7 属性观察器示例7创建界面的文件保存和再命名(1)对应GUIDE创建界面的两个伴生文件(2)GUIDE所创建界面的保存操作图9.2-8 激活保存操作提示对话框(3)GUIDE自动生成文件的再命名9.2.2控件的运作机理及创建用于构建用户界面的组件(Components)中,有一类可专称为控件(Controls)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验九图形用户界面与对话框1.实验目的1、学会处理ActionEvent事件2、学会使用布局类3、学习焦点、鼠标和键盘事件4、学习使用输入和消息对话框2.实验内容1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。

1) 实验1算术测试2) 实验2布局与日历3) 实验3华容道4) 实验4字体对话框5) 实验5计算平方根6) 实验6简易计算器2、设计编写程序完成以下任务。

1)修改实验1的代码,再增加“小学生”级别,并增加测试乘、除法的功能。

2)编写一个应用程序,用户可以在一个文本框里输入数字字符,按Enter 键后将数字放入一个文本区。

当输入的数字大于1000时,弹出一个有模式的对话框,提示用户数字已经大于1000,是否继续将该数字放入文本区。

3)编写应用程序,有一个标题为“移动”的窗口,窗口布局为null,在窗口中有两个按钮,单击一个按钮让另一个按钮移动。

4)仿照操作系统中的简易计算机,自行设计一个能进行加减乘除运算的计算器。

需要考虑先进性乘除运算再进行加减运算。

3.实验步骤略4.评分标准1.A——内容功能完善,编程风格好,人机接口界面好;2.B——内容功能完善,编程风格良好,人机接口界面良好;3.C——完成必做内容;4.D——能完成必做内容;5.E——未按时完成必做内容,或者抄袭(雷同者全部为E).参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。

(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP)附录:实验1 算术测试模板代码Teacher.javaimport java.util.Random;import java.awt.event.*;import javax.swing.*;public class Teacher implements ActionListener{int numberOne,numberTwo;String operator=" ";boolean isRight;Random random;int maxInteger;JTextField textOne,textTwo,textResult;JLabel operatorLabel,message;Teacher(){random=new Random();}public void setMaxInteger(int n){maxInteger=n;}public void actionPerformed(ActionEvent e){String str=e.getActionCommand();if(str.equals("getProblem")){numberOne=random.nextInt(maxInteger)+1;numberTwo=random.nextInt(maxInteger)+1;double d=Math.random();if(d>=0.5){operator="+";}else{operator="-";}textOne.setText(""+numberOne);textTwo.setText(""+numberTwo);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);}else if(str.equals("answer")){String answer=textResult.getText();try{int result=Integer.parseInt(answer);if(operator.equals("+")){if(result==numberOne+numberTwo){message.setText("你回答正确");}else{message.setText("你回答错误");}}else if(operator.equals("-")){if(result==numberOne-numberTwo){message.setText("你回答正确");}else{message.setText("你回答错误");}}}catch(NumberFormatException ex){message.setText("请输入数字字符");}}}public void setJTextField(JTextField...t){textOne =t[0];textTwo =t[1];textResult =t[2];}public void setJLabel(bel){operatorLabel=label[0];message=label[1];}}ComputerFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class ComputerFrame extends JFrame{JMenuBar menubar;JMenu choiceGrade;JMenuItem grade1,grade2;JTextField textOne,textTwo,textResult;JButton getProblem,giveAnswer;JLabel operatorLabel,message;Teacher teacherZhang;ComputerFrame(){teacherZhang=new Teacher();teacherZhang.setMaxInteger(20);setLayout(new FlowLayout());menubar=new JMenuBar();choiceGrade=new JMenu("选择级别");grade1=new JMenuItem("幼儿级别");grade2=new JMenuItem("儿童级别");grade1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){teacherZhang.setMaxInteger(10);}});grade2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){teacherZhang.setMaxInteger(50);}});choiceGrade.add(grade1);choiceGrade.add(grade2);menubar.add(choiceGrade);setJMenuBar(menubar);//【代码1】//创建textOne,其可见字符长是5textTwo=new JTextField(5);textResult=new JTextField(5);operatorLabel=new JLabel("+");operatorLabel.setFont(new Font("Arial",Font.BOLD,20));message=new JLabel("你还没有回答呢");getProblem=new JButton("获取题目");giveAnswer=new JButton("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnswer);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);getProblem.setActionCommand("getProblem");textResult.setActionCommand("answer");giveAnswer.setActionCommand("answer");teacherZhang.setJTextField(textOne,textTwo,textResult);teacherZhang.setJLabel(operatorLabel,message);//【代码2】//将teacherZhang注册为getProblem的ActionEvent事件监视器//【代码3】//将teacherZhang注册为giveAnswer的ActionEvent事件监视器//【代码4】//将teacherZhang注册为textResult的ActionEvent事件监视器setVisible(true);validate();setDefaultCloseOperation(DISPOSE_ON_CLOSE);}}MainClass.javapublic class MainClass {public static void main(String[] args) {ComputerFrame frame;frame=new ComputerFrame();frame.setTitle("算术测试");frame.setBounds(100,100,650,180);}}实验2 布局与日历模板代码CalendarBean.javaimport java.util.Calendar;public class CalendarBean {String [] day;int year=2008,month=0;public int getYear() {return year;}public void setYear(int year) {this.year = year;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public String [] getCalendar() {String [] a=new String[42];Calendar 日历=Calendar.getInstance();日历.set(year,month-1,1);int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;int day=0;if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) day=31;if(month==4||month==6||month==9||month==11)day=30;if(month==2) {if(((year%4==0)&&(year%100!=0))||(year%400==0))day=29;elseday=28;}for(int i=星期几,n=1;i<星期几+day;i++) {a[i]=String.valueOf(n) ;n++;}return a;}}CalendarFrame.javaimport java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.awt.*;import java.util.*;public class CalendarFrame extends JFrame implements ActionListener {JLabel labelDay[]=new JLabel[42];JButton titleName[]=new JButton[7];String name[]={"日","一","二","三","四","五","六"};JButton nextMonth,previousMonth;CalendarBean calendar;JLabel showMessage=new JLabel("",JLabel.CENTER);int year=2011,month=2;public CalendarFrame(){JPanel pCenter=new JPanel();//【代码1】//将pCenter的布局设置为7行7列的GridLayout布局.for(int i=0;i<7;i++){titleName[i]=new JButton(name[i]);titleName[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED));//【代码2】//pCenter中添加组件titleName[i]}for(int i=0;i<42;i++){labelDay[i]=new JLabel("",JLabel.CENTER);labelDay[i].setBorder(new SoftBevelBorder(BevelBorder.LOWERED));//【代码3】//pCenter中添加组件labelDay[i]}calendar=new CalendarBean();nextMonth=new JButton("下月");previousMonth=new JButton("上月");nextMonth.addActionListener(this);previousMonth.addActionListener(this);JPanel pNoth=new JPanel(),pSouth=new JPanel();pNoth.add(previousMonth);pNoth.add(nextMonth);pSouth.add(showMessage);//【代码4】//将窗口pCenter添加到中央区域//【代码5】//将窗口pNoth添加到北面区域//【代码6】//将窗口pSouth添加到南面区域setYearAndMonth(year,month);setDefaultCloseOperation(DISPOSE_ON_CLOSE);}public void setYearAndMonth(int y,int m){calendar.setYear(y);calendar.setMonth(m);String day[]= calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.month+"月"); }public void actionPerformed(ActionEvent e) {if(e.getSource()==nextMonth){month=month+1;if(month>12){month=1;}calendar.setMonth(month);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}}else if(e.getSource()==previousMonth){month=month-1;if(month<1){month=12;}calendar.setMonth(month);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}}showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.month+"月");}}CalendarMainClass.javapublic class CalendarMainClass {public static void main(String[] args) {CalendarFrame frame=new CalendarFrame();frame.setBounds(100,100,360,300);frame.setVisible(true);frame.setYearAndMonth(2013,5);}}实验3 华容道模板代码MainClassHRR.javapublic class MainClassHRR {public static void main(String[] args) {{ Hua_Rong_Road HRR=new Hua_Rong_Road();}}}Person.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public class Person extends JButton implements FocusListener {int number;Color c=new Color(255,245,170);Font font=new Font("宋体",Font.BOLD,12);Person(int number,String s){ super(s);setBackground(c);setFont(font);this.number=number;c=getBackground();addFocusListener(this);}public void focusGained(FocusEvent e){ setBackground(Color.red);}public void focusLost(FocusEvent e){ setBackground(c);}}Hua_Rong_Road.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public class Hua_Rong_Road extends JFrame implements MouseListener,KeyListener, ActionListener {Person person[]=new Person[10];JButton left,right,above,below;JButton restart=new JButton("重新开始");public Hua_Rong_Road(){ init();setBounds(100,100,320,360);setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE);validate();}public void init(){ setLayout(null);add(restart);restart.setBounds(100,320,120,25);restart.addActionListener(this);String name[]={"曹操","关羽","张","刘","周","黄","兵","兵","兵","兵"};for(int k=0;k<name.length;k++){ person[k]=new Person(k,name[k]);person[k].addMouseListener(this);person[k].addKeyListener(this);add(person[k]);}person[0].setBounds(104,54,100,100);person[1].setBounds(104,154,100,50);person[2].setBounds(54, 154,50,100);person[3].setBounds(204,154,50,100);person[4].setBounds(54, 54, 50,100);person[5].setBounds(204, 54, 50,100);person[6].setBounds(54,254,50,50);person[7].setBounds(204,254,50,50);person[8].setBounds(104,204,50,50);person[9].setBounds(154,204,50,50);person[9].requestFocus();left=new JButton(); right=new JButton();above=new JButton(); below=new JButton();add(left); add(right);add(above); add(below);left.setBounds(49,49,5,260);right.setBounds(254,49,5,260);above.setBounds(49,49,210,5);below.setBounds(49,304,210,5);validate();}public void keyTyped(KeyEvent e){}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){ Person man=(Person)e.getSource();if(e.getKeyCode()==KeyEvent.VK_DOWN){ go(man,below);}if(e.getKeyCode()==KeyEvent.VK_UP){ go(man,above);}if(e.getKeyCode()==KeyEvent.VK_LEFT){ go(man,left);}if(e.getKeyCode()==KeyEvent.VK_RIGHT){ go(man,right);}}public void mousePressed(MouseEvent e){ Person man=(Person)e.getSource();int x=-1,y=-1;x=e.getX();y=e.getY();int w=man.getBounds().width;int h=man.getBounds().height;if(y>h/2){ go(man,below);}if(y<h/2){ go(man,above);}if(x<w/2){ go(man,left);}if(x>w/2){ go(man,right);}}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseClicked(MouseEvent e) {}public void go(Person man,JButton direction){ boolean move=true;Rectangle manRect=man.getBounds();int x=man.getBounds().x;int y=man.getBounds().y;if(direction==below)y=y+50;else if(direction==above)y=y-50;else if(direction==left)x=x-50;else if(direction==right)x=x+50;manRect.setLocation(x,y);Rectangle directionRect=direction.getBounds();for(int k=0;k<10;k++){ Rectangle personRect=person[k].getBounds();if((manRect.intersects(personRect))&&(man.number!=k)){ move=false;}}if(manRect.intersects(directionRect)){ move=false;}if(move==true){ man.setLocation(x,y);}}public void actionPerformed(ActionEvent e){ dispose();new Hua_Rong_Road();}}实验4 字体对话框模板代码FontFamilyNames.javaimport java.awt.GraphicsEnvironment;public class FontFamilyNames{ String allFontName[];public String [] getFontName(){ GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();allFontName=ge.getAvailableFontFamilyNames();return allFontName;}}FontDialog.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public class FontDialog extends JDialog implements ItemListener,ActionListener{ FontFamilyNames fontFamilyNames;int fontSize=38;String fontName;JComboBox fontSizeList,fontNameList;JLabel label;Font font;JButton yes,cancel;static int YES=1,NO=0;int state=-1;FontDialog(Frame f){super(f);setTitle("字体");font=new Font("宋体",Font.PLAIN,12);fontFamilyNames=new FontFamilyNames();//【代码1】//当前对话框调用setModal(boolean b)设置为有模式yes=new JButton("Yes");cancel=new JButton("cancel");yes.addActionListener(this);cancel.addActionListener(this);label=new JLabel("hello,奥运",JLabel.CENTER);fontSizeList=new JComboBox();fontNameList=new JComboBox();String name[]=fontFamilyNames.getFontName();fontNameList.addItem("字体");for(int k=0;k<name.length;k++){ fontNameList.addItem(name[k]);}fontSizeList.addItem("大小");for(int k=8;k<72;k=k+2){ fontSizeList.addItem(new Integer(k));}fontNameList.addItemListener(this);fontSizeList.addItemListener(this);JPanel pNorth=new JPanel();pNorth.add(fontNameList);pNorth.add(fontSizeList);add(pNorth,BorderLayout.NORTH);add(label,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(yes);pSouth.add(cancel);add(pSouth,BorderLayout.SOUTH);setBounds(100,100,280,170);setDefaultCloseOperation(DISPOSE_ON_CLOSE);validate();}public void itemStateChanged(ItemEvent e){if(e.getSource()==fontNameList){fontName=(String)fontNameList.getSelectedItem();font=new Font(fontName,Font.PLAIN,fontSize); }else if(e.getSource()==fontSizeList){Integer m=(Integer)fontSizeList.getSelectedItem();fontSize=m.intValue();font=new Font(fontName,Font.PLAIN,fontSize); }label.setFont(font);label.repaint();validate();}public void actionPerformed(ActionEvent e){ if(e.getSource()==yes){ state=YES;//【代码2】//对话框设置为不可见}else if(e.getSource()==cancel){ state=NO;//【代码3】//对话框设置为不可见}}public int getState(){ return state;}public Font getFont(){ return font;}}FrameHaveDialog.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public class FrameHaveDialog extends JFrame implements ActionListener{ JTextArea text;JButton buttonFont;FrameHaveDialog(){ buttonFont=new JButton("设置字体");text=new JTextArea("Java面向对象程序设计");buttonFont.addActionListener(this);add(buttonFont,BorderLayout.NORTH);add(text);setBounds(60,60,300,300);setVisible(true);validate();setDefaultCloseOperation(DISPOSE_ON_CLOSE);}public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonFont){ FontDialog dialog=new FontDialog(this);//【代码4】//创建对话框dialog.setVisible(true);//【代码5】//对话框设置为可见//【代码6】//对话框设置设置标题为“字体对话框”if(dialog.getState()==FontDialog.YES){ text.setFont(dialog.getFont());text.repaint();}if(dialog.getState()==FontDialog.NO){ text.repaint();}}}}FontDialogMainClass.javapublic class FontDialogMainClass{ public static void main(String args[]){ FrameHaveDialog win=new FrameHaveDialog();}}实验5 计算平方根模板代码InputNumber.javaimport javax.swing.*;public class InputNumber {public static void main(String[] args) {double result=0;boolean inputComplete=false;while(inputComplete==false){String str=//【代码1】//弹出输入对话框try{result=Double.parseDouble(str);if(result>=0){inputComplete=true;}}catch(NumberFormatException exp){//【代码2】//弹出消息对话框inputComplete=false;}}double sqrtRoot=Math.sqrt(result);System.out.println(result+"平方根:"+sqrtRoot);}}实验6 简易计算器模板代码UserFrm.javaimport java.awt.*;import java.awt.event.*;public class UserFrm extends Frame implements ActionListener {private MenuBar jmb = new MenuBar();private MenuItem item = new MenuItem("退出");public static Font font = new Font("宋体", 1, 16);public UserFrm(String title) throws HeadlessException {super(title);//【代码1】//设置该Frame位置与大小,具体值为(100, 100, 250, 200)setVisible(true);Menu menu = new Menu("文件");menu.add(item);item.setFont(font);Panel panelNorth = new Panel();//【代码2】//把panelNorth加入窗体的北区add(new Caculator(), BorderLayout.CENTER);item.addActionListener(this);jmb.add(menu);jmb.setFont(font);setMenuBar(jmb);//【代码3】//用匿名类的方式设计完成窗体关闭的监听和实现关闭的方法validate();}public void actionPerformed(ActionEvent e) {Object o = e.getSource();if (o == item)System.exit(1);}public static void main(String[] args) {new UserFrm("用户界面");}}class Caculator extends Panel implements ActionListener, KeyListener {private TextField tf = new TextField("");private float x = 0;private float y = 0;private int code = 0;private boolean enable;private boolean first;private String str = "";public Caculator() {setLayout(new BorderLayout());enable = true;first = true;add(tf, BorderLayout.NORTH);Panel panel = new Panel();//【代码4】//把panel设置为GridLayout布局Button btn = null;//【代码5】//创建btn并把标题设为1;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码6】//创建btn并把标题设为2;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码7】//创建btn并把标题设为3;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码8】//创建btn并把标题设为+;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码9】//创建btn并把标题设为4;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码10】//创建btn并把标题设为5;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码11】//创建btn并把标题设为6;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码12】//创建btn并把标题设为-;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码13】//创建btn并把标题设为7;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码14】//创建btn并把标题设为8;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听///【代码15】//创建btn并把标题设为9;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码16】//创建btn并把标题设为*;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码17】//创建btn并把标题设为0;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码18】//创建btn并把标题设为.;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听//【代码19】//创建btn并把标题设为/;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听btn = new Button("=");panel.add(btn);btn.setFont(UserFrm.font);btn.addActionListener(this);btn.addKeyListener(this);//【代码20】//把panel加入Caculator的中部区域中}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "+") {//【代码21】//把文本框里的数字转成浮点型,赋给xcode = 0;this.tf.setText("");}if (e.getActionCommand() == "-") {//【代码21】//把文本框里的数字转成浮点型,赋给xcode = 1;this.tf.setText("");}if (e.getActionCommand() == "*") {//【代码21】//把文本框里的数字转成浮点型,赋给xcode = 2;this.tf.setText("");}if (e.getActionCommand() == "/") {x = Float.parseFloat(tf.getText());code = 3;this.tf.setText("");}if (e.getActionCommand() != "+" && e.getActionCommand() != "-"&& e.getActionCommand() != "*" && e.getActionCommand() != "/"&& e.getActionCommand() != "=") {if (enable) {if (first) {tf.setText(e.getActionCommand());first = false;} else {tf.setText(tf.getText() + e.getActionCommand());}}else {tf.setText(e.getActionCommand());enable = true;}}if (e.getActionCommand() == "=") {switch (code) {case 0://【代码22】//完成两个数的加法运算tf.setText(Float.toString(y));enable = false;break;case 1://【代码23】//完成两个数的减法运算tf.setText(Float.toString(y));enable = false;break;case 2://【代码24】//完成两个数的乘法运算tf.setText(Float.toString(y));enable = false;break;case 3://【代码25】//完成两个数的除法运算tf.setText(Float.toString(y));enable = false;break;}}}public void keyPressed(KeyEvent e) {if (e.getKeyChar() == '+') {x = Float.parseFloat(tf.getText());code = 0;this.tf.setText("");}if (e.getKeyChar() == '-') {x = Float.parseFloat(tf.getText());code = 1;this.tf.setText("");}if (e.getKeyChar() == '*') {x = Float.parseFloat(tf.getText());code = 2;this.tf.setText("");}if (e.getKeyChar() == '/') {x = Float.parseFloat(tf.getText());code = 3;this.tf.setText("");}if (【代码26】) {//判断用键盘输入的数字是否为0-9以及.号,其中的一个。

相关文档
最新文档