组件与事件编程 实验报告
- 格式:doc
- 大小:1.55 MB
- 文档页数:34
实验二常用控件的编程一、实验目的和要求(1)掌握窗口下拉列表框、选择钮、组合框、多行编辑框等常用控件的基本使用方法和编程方法;(2)掌握窗口控件的齐整性操纵方法以及Tab顺序的设置;(3)掌握SQL语句的使用,PowerBuilder系统提供的SQL画板的使用方法。
二、实验准备(1)复习有关下拉列表框控件、选择按钮控件、多行编辑框控件以及组合框控件的内容;(2)启动Powerbuilder 9.0;(3)选择已经创建的应用mypb..pbl。
三、实验步骤本次实验将创建一个学生基础数据的录入窗口;其功能是向实验1中创建的student数据库中的student表输入数据。
1.创建窗口对象创建一个新的弹出式窗口对象,Title为“学生基本情况输入”;W indowType为“popup!”;保存窗口名称为w_studentinput。
2.向窗口中添加控件(1)布置窗口中的静态文本控件在窗口控件下拉列表工具栏图标中选择静态文本控件,然后在窗口上单击,生成静态文本控件。
将Text属性设置为“学生情况录人”,选择字体为“华文行楷”(无此字体时,可以换成别的字体),字体尺寸为26,按下“Bold”图标按钮,选择“TextColor”为深蓝色。
其他输入栏的说明文字都选为宋体12号黑色宇;使用Ctr l和T组合键进行外观复制后修改Text属性完成。
(2)布置窗口中的单行编辑框控件在窗口控件下拉列表工具栏图标中选择单行编辑框控件,然后在窗口上单击,生成单行编辑框控件。
使用Ctrl和T组合键进行外观复制生成5个单行编辑框,它们的名称和用途见表4。
表4 单行编辑框的名称和用途(3)布置窗口中的多行编辑框控件在窗口控件下拉列表工具栏图标中选择多行编辑框控件,然后在窗口上单击,生成多行编辑框控件。
其名称Name为“mle_resume”,选中“IgnoreDefaultButton”复选框。
多行编辑框控件用于输入个人简历。
辽宁工程技术大学上机实验报告实验要求:(1)组件在窗口中的位置尽量按要求摆放。
(2)响应窗口的环比事件。
(3)实验四不需要写在报告上。
实验内容:(1)设计一个简易计算器,在“操作数”标签右侧的两个文本框输入操作数,当单击“+,-,*,/”按钮时,对两个操作数进行运算并将结果填到“结果”标签右侧的文本框中。
程序:import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.DecimalFormat;import javax.swing.*;import javax.swing.border.LineBorder;import javax.swing.text.JTextComponent;class MyApp extends JFrame{JTextField b1=new JTextField("0",12);JTextField b2=new JTextField("0",12);JTextField b3=new JTextField("0",12);JTextField b4=new JTextField("0",12);MyApp(){super("简易计算器");Container c=getContentPane();c.setLayout(new FlowLayout());JPanel a1 =new JPanel(new FlowLayout());JPanel a2 =new JPanel(new FlowLayout());JPanel a3 =new JPanel(new FlowLayout());JPanel a4 =new JPanel(new FlowLayout());JPanel a5 =new JPanel(new FlowLayout());JLabel jb1 =new JLabel("数字一:");JLabel jb2 =new JLabel("数字二:");JLabel jb3 =new JLabel("操作:");JLabel jb4 =new JLabel("结果:");JButton c1=new JButton("+");JButton c2=new JButton("-");JButton c3=new JButton("*");JButton c4=new JButton("/");JButton c5=new JButton("重置");a1.add(jb1); a1.add(b1);a2.add(jb2); a2.add(b2);a3.add(jb3); a3.add(c1); a3.add(c2); a3.add(c3); a3.add(c4);a4.add(jb4); a4.add(b4);a5.add(c5);c.add(a1);c.add(a2);c.add(a3);c.add(a4);c.add(a5);c1.addActionListener(new ActionListener(){ p ublic void actionPerformed(ActionEvent e){ E1(e);}});c2.addActionListener(new ActionListener(){ p ublic void actionPerformed(ActionEvent e){ E2(e);}});c3.addActionListener(new ActionListener(){ p ublic void actionPerformed(ActionEvent e){ E3(e);}});c4.addActionListener(new ActionListener(){ p ublic void actionPerformed(ActionEvent e){ E4(e);}});c5.addActionListener(new ActionListener(){ p ublic void actionPerformed(ActionEvent e){ E5(e);}});setSize(270,250);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}protected void E1(ActionEvent e){double z1=Double.parseDouble(b1.getText());double z2=Double.parseDouble(b2.getText());DecimalFormat f1=new DecimalFormat("#.000");String s1=f1.format(z1+z2);b4.setText(s1);}protected void E2(ActionEvent e){double z1=Double.parseDouble(b1.getText());double z2=Double.parseDouble(b2.getText());DecimalFormat f1=new DecimalFormat("#.000");String s1=f1.format(z1-z2);b4.setText(s1);}protected void E3(ActionEvent e){double z1=Double.parseDouble(b1.getText());double z2=Double.parseDouble(b2.getText());DecimalFormat f1=new DecimalFormat("#.000");String s1=f1.format(z1*z2);b4.setText(s1);}protected void E4(ActionEvent e){double z1=Double.parseDouble(b1.getText());double z2=Double.parseDouble(b2.getText());DecimalFormat f1=new DecimalFormat("#.000");if(z2!=0){String s1=f1.format(z1/z2);b4.setText(s1);}else{b4.setText("Error!");}}protected void E5(ActionEvent e){b1.setText("0");b2.setText("0");b4.setText("0");}public static void main(String args[]){new MyApp();}}结果:(加法)(2)编写文本移动程序,窗口中有两个文本区和两个按钮,文本区分别位于窗口的左边和右边区域,2个按钮位于窗口的中间区域,当单击“→”按钮时,将左边文本区选中的内容添加到右侧的文本区的末尾。
实验四组件及事件处理一.实验目的学习处理ActionEvent事件;学习处理ItemEvent事件和paint方法;学习使用布局类。
二.实验要求实验前,应事先熟悉相关知识点,拟出相应的实验操作步骤,明确实验目的和要求;实验过程中,服从实验指导教师安排,遵守实验室的各项规章制度,爱护实验仪器设备;实验操作完成后,认真书写实验报告,总结实验经验,分析实验过程中出现的问题。
三.实验内容1、算术测试编写一个算术测试小软件,用来训练小学生的算术能力。
程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确:ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案:MainClass是软件的主类。
2、信号灯编写一个带有窗口的应用程序。
在窗口的北面添加一个下拉列表,该下拉列表有“红灯”、“绿灯”和“黄灯”三个选项。
在窗口的中心添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。
3、布局与日历(1)编写一个应用程序,有一个窗口,该窗口为BorderLayout布局。
窗口的中心添加一个Panel容器pCenter:pCenter的布局是7行7列的GridLayout布局,pCenter中放置49个标签,用来显示日历。
窗口的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个:按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月的日历;单击previousMonth,可以显示当前月的上一月的日历。
窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。
(2)请按模板要求,将【代码】替换为Java程序代码。
(3)在CalendarFrame类中增加一个TextField文本框,用户可以通过在文本框中输入年份来修改calendar对象的int成员year。
组态组件开发实验报告1. 引言组态组件是一种用于制作动态可视化图形界面的工具。
通过组态组件,用户可以快速搭建各种图形界面,满足不同的实时数据展示需求。
本实验旨在探索组态组件开发的基本原理和实际应用。
2. 实验目的本实验的主要目的是了解组态组件的原理和工作流程,掌握组态组件的开发方法,以及探索组态组件在工业控制领域的实际应用。
3. 实验环境本实验使用以下环境和工具:- 操作系统:Windows 10- 开发工具:Visual Studio Code- 程序语言:JavaScript- 组件库:React4. 实验内容4.1 组件原理组态组件是基于React的可视化控件,它利用React的组件化特性,将图形化界面划分为一系列可独立控制的组件。
每个组件都有自己的属性和状态,可以根据实时数据的变化来实时更新界面。
4.2 组件开发4.2.1 环境配置首先,我们需要配置开发环境。
在Visual Studio Code中新建一个React项目,并安装相关的组件库和工具。
4.2.2 组件设计接下来,我们需要设计组件的样式和功能。
可以根据实际需求来确定组件的外观和交互方式。
4.2.3 组件实现使用React的组件化编程方式,通过编写JavaScript代码来实现组件的功能。
在代码中,可以定义组件的属性和状态,以及相应的事件处理函数。
4.3 实际应用4.3.1 数据采集首先,我们需要采集实时数据。
可以使用传感器、网络接口或数据库等方式来获取数据。
4.3.2 数据处理获取数据后,需要对数据进行处理。
可以根据业务逻辑来计算数据的变化和趋势。
4.3.3 数据展示最后,将处理后的数据展示在组态组件中。
可以通过更新组件的状态来动态更新界面。
5. 实验结果通过实验,我们成功地开发了一个组态组件,并将其应用于实际工业控制系统中。
我们可以实时监测不同设备的状态和性能参数,并及时发现问题,提高生产效率。
6. 实验总结本实验通过组态组件开发,帮助我们掌握了组态组件的原理和开发方法,并了解了组态组件在工业控制领域的实际应用。
一、实验目的1. 理解组件通信的基本概念和原理。
2. 掌握不同类型组件之间的通信方式和方法。
3. 通过实验,实现组件之间的数据交互和协同工作。
4. 增强在实际项目中应用组件通信的能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#4. 组件:Windows Forms应用程序三、实验内容1. 组件通信概述组件通信是指不同组件之间通过某种方式进行数据交换和协同工作。
在软件开发中,组件通信是提高代码重用性和可维护性的关键。
2. 实验一:事件驱动通信在本实验中,我们将使用Windows Forms应用程序中的按钮和标签组件进行事件驱动通信。
- 创建一个Windows Forms应用程序。
- 添加一个按钮(Button1)和一个标签(Label1)到窗体上。
- 为Button1添加一个点击事件处理器,当点击按钮时,将触发一个事件,该事件将更新Label1的文本内容。
```csharpprivate void Button1_Click(object sender, EventArgs e){Label1.Text = "按钮被点击了!";}```3. 实验二:属性访问通信在本实验中,我们将通过访问组件的属性来实现通信。
- 创建一个Windows Forms应用程序。
- 添加一个文本框(TextBox1)和一个按钮(Button2)到窗体上。
- 为Button2添加一个点击事件处理器,当点击按钮时,读取TextBox1中的文本,并将其显示在标签(Label2)中。
```csharpprivate void Button2_Click(object sender, EventArgs e){Label2.Text = TextBox1.Text;}```4. 实验三:方法调用通信在本实验中,我们将通过调用组件的方法来实现通信。
事件驱动编程实验报告1. 引言事件驱动编程(Event-driven programming)是一种编程范式,指的是程序的控制流程由外部事件触发的机制来驱动。
与传统的顺序编程不同,事件驱动编程将程序分解为多个事件处理器,通过监听和响应事件来实现系统的交互和功能。
本实验旨在通过实际操作,掌握事件驱动编程的基本原理和实现方法,并对其优劣势进行评估。
2. 实验过程2.1 实验环境本次实验使用Python语言进行编码,并使用了相应的图形用户界面(GUI)库进行界面设计。
实验环境配置如下:- 操作系统:Windows 10- Python版本:Python 3.7.2- GUI库:Tkinter2.2 实验步骤1. 设计界面布局:根据实验需求,使用Tkinter库设计一个简单的用户界面,包含一个按钮和一个文本框,用于实验过程中的事件触发和响应。
2. 编写代码:使用Python语言编写事件驱动程序的逻辑代码,包括事件处理函数的定义和事件绑定的操作。
3. 测试程序:运行代码,测试程序是否能够正确监听和响应按钮点击事件,并将相应的结果显示在文本框中。
4. 优化和改进:根据测试结果,对程序进行优化和改进,提高其性能和稳定性。
2.3 实验结果经过多次测试和优化,实验结果显示该事件驱动程序能够准确监听和响应按钮点击事件,并将相应结果正确显示在文本框中。
程序运行稳定,响应速度快,符合我们的预期要求。
3. 优缺点分析3.1 优点事件驱动编程具有以下几个优点:1. 高度自由:事件驱动编程使得程序设计更加自由,程序员可以根据具体需求编写事件处理函数,不再受限于传统的顺序执行模式。
2. 响应速度快:事件驱动程序能够实时监听和响应事件,具有较快的响应速度,适用于对实时性要求较高的应用场景。
3. 模块化设计:事件驱动编程将程序分解为多个事件处理器,每个处理器负责处理特定的事件,使程序的设计更加模块化、易于维护。
3.2 缺点事件驱动编程也存在一些缺点:1. 复杂性高:相比传统的顺序编程,事件驱动编程思想更加抽象和复杂,需要对事件和事件处理的机制有一定的理解和掌握。
实验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.12.在面板中添加组件(1)程序功能:在Applet 中添加面板容器,并分别在Applet、面板容器中添加组件并使用不同的布局管理方式。
(2)编写LX8_2.java 程序文件,源代码如下。
(3)编译程序LX8_2.java。
一、实验目的1. 熟悉常见控件的功能和使用方法。
2. 学习控件在应用程序中的布局和事件处理。
3. 提高编程实践能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容本次实验主要使用Windows窗体应用程序进行控件的使用,具体内容包括:1. 控件的创建和添加2. 控件的属性设置3. 控件的布局4. 控件的事件处理四、实验步骤1. 创建Windows窗体应用程序(1)打开Visual Studio 2019,选择“创建新项目”。
(2)在“创建新项目”对话框中,选择“Windows窗体应用程序”,命名为“控件实验”。
(3)点击“创建”按钮,完成应用程序的创建。
2. 添加控件(1)在工具箱中找到所需控件,例如:文本框(TextBox)、按钮(Button)、标签(Label)等。
(2)将控件拖拽到窗体上,即可添加控件。
3. 设置控件属性(1)选中控件,在属性窗口中查看和修改控件的属性。
(2)例如,设置文本框的Text属性为“请输入内容”,设置按钮的Text属性为“提交”。
4. 控件布局(1)使用布局工具对控件进行布局,例如:使用水平布局、垂直布局、网格布局等。
(2)调整控件的大小和位置,使界面美观。
5. 控件事件处理(1)双击控件,打开代码编辑器。
(2)在事件处理函数中编写代码,实现所需功能。
(3)例如,在按钮的点击事件中,获取文本框的值并显示在标签中。
五、实验结果与分析1. 创建了包含文本框、按钮、标签的Windows窗体应用程序。
2. 添加并设置了控件的属性。
3. 对控件进行了布局,使界面美观。
4. 编写了按钮点击事件处理函数,实现了获取文本框值并显示在标签中的功能。
六、实验总结通过本次实验,我掌握了以下内容:1. 常见控件的功能和使用方法。
2. 控件在应用程序中的布局和事件处理。
3. 提高了编程实践能力。
在实验过程中,我发现以下问题:1. 对部分控件属性设置不够熟悉,需要加强学习。
实验十一1.设置一个窗口,里面有两个文本框,如果在第一个文本框输入的全部是数字字符,计算它的平方并显示在第二个文本框中,如果包括非数字字符,就将整个字符串显示在第二个文本框中,并且在命令行输出其字符串的长度。
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.math.*;public class One{public static void main(String args[]){MathWindow win=new MathWindow();}}class MathWindow extends JFrame{JTextField inputText,showText;MathWindow(){inputText=new JTextField(10);showText=new JTextField(10);inputText.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String s=inputText.getText();try{BigInteger n=new BigInteger(s);n=n.pow(2);showText.setText(n.toString());}catch(NumberFormatException ee){JTextField t1=(JTextField) (e.getSource());String str=t1.getText();showText.setText(str);System.out.println(str.length());}}});setLayout(new FlowLayout());add(inputText);add(showText);setBounds(100,100,200,120);setVisible(true);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}}2.选择菜单“编辑”中的相应菜单项,将文本区中选中的内容剪切、复制到系统剪切板或系统剪切板的内容粘贴到文本区。
随着现代工业的快速发展,自动化、智能化生产成为趋势。
为了培养具备实际操作能力的工程技术人才,我国许多高校开设了组件实训课程。
本次实训旨在通过实际操作,让学生了解和掌握组件的基本原理、结构特点、安装与调试方法,提高学生的动手能力和工程实践能力。
二、实训目的1. 熟悉组件的基本原理和结构特点;2. 掌握组件的安装与调试方法;3. 提高学生的动手能力和工程实践能力;4. 培养学生的团队协作精神。
三、实训内容1. 组件基础知识(1)组件的定义及分类;(2)组件的结构特点及功能;(3)组件在自动化生产线中的作用。
2. 组件安装与调试(1)安装前的准备工作;(2)组件的安装方法;(3)组件的调试方法;(4)故障排除及预防措施。
3. 组件应用实例(1)组件在自动化生产线中的应用;(2)组件在机器人中的应用;(3)组件在自动化检测设备中的应用。
1. 实训前准备(1)学生分组,每组由1名组长和4-5名组员组成;(2)查阅相关资料,了解组件的基本原理和结构特点;(3)准备实训所需的工具和设备。
2. 实训实施(1)讲解组件基础知识,让学生掌握组件的基本原理和结构特点;(2)进行组件安装与调试实训,让学生掌握组件的安装与调试方法;(3)组织学生进行组件应用实例分析,提高学生的工程实践能力。
3. 实训总结(1)各组汇报实训成果,总结实训过程中遇到的问题及解决方法;(2)教师点评各组实训成果,指出不足之处,提出改进建议;(3)学生撰写实训报告,总结实训过程中的收获和体会。
五、实训成果1. 学生掌握了组件的基本原理和结构特点;2. 学生掌握了组件的安装与调试方法;3. 学生的动手能力和工程实践能力得到提高;4. 学生的团队协作精神得到培养。
六、实训体会1. 实践是检验真理的唯一标准。
通过本次实训,我深刻体会到理论知识与实践操作相结合的重要性;2. 团队协作是完成任务的保障。
在实训过程中,我学会了与团队成员沟通、协作,共同解决问题;3. 养成良好的工作习惯。