实验05_Java_GUI
Java中的GUI自动化测试
Java中的GUI自动化测试随着软件行业的快速发展,用户界面(GUI)自动化测试在软件开发过程中扮演着越来越重要的角色。
而在Java语言中,我们也可以利用各种工具和框架来实现GUI的自动化测试。
一. GUI自动化测试的意义和作用GUI自动化测试是指通过模拟用户操作和交互,对软件的图形用户界面进行测试和验证。
与传统的手动测试相比,GUI自动化测试具有以下优势:1. 提高测试效率:自动测试可以快速、准确地执行大量的测试用例,相较于手动测试可以节省大量的人力资源和时间成本。
2. 提升测试覆盖率:通过自动化测试,可以覆盖更多的测试场景和用例,减少潜在的缺陷和问题。
3. 提高测试质量:自动化测试可以避免由于人为因素引起的错误,保证测试结果的准确性和一致性。
4. 便于回归测试:GUI自动化测试可以轻松实现对修改、优化或新增功能的回归测试,确保之前正常的功能不会受到影响。
二. Java中常用的GUI自动化测试工具和框架1. Selenium:Selenium是一套用于Web应用程序测试的工具集,提供了一组API用于模拟用户操作,支持多种浏览器和操作系统。
通过Selenium WebDriver,我们可以使用Java编写自动化测试脚本,实现对界面元素的定位、操作和断言等。
2. Appium:Appium是一款用于移动应用程序测试的开源工具,支持Android和iOS平台。
它提供了一组API和库,可以与Java语言结合使用,用于模拟用户在移动设备上的操作和交互。
3. TestFX:TestFX是一款基于JavaFX的GUI自动化测试框架,专注于Java桌面应用的测试。
它可以模拟用户与界面的交互,并提供丰富的验证和断言功能,方便快捷地进行自动化测试。
4. Awaitility:Awaitility是一个用于处理异步操作的Java库,可用于GUI自动化测试中等待界面元素出现或事件完成的情况。
它提供了简洁的API语法,使测试代码更易读和维护。
java gui实训课程设计
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的理解,并掌握常用的调试技巧。
JavaGUI程序设计
南京信息工程大学实验(实习)报告实验(实习)名称 JavaGUI程序设计实验(实习)日期得分指导教师陈遥系计算机专业网络工程年级 2014 班次 2 姓名刘信言学号 20142346074一、实验目的1、掌握图形用户界面的基本组件(如窗口、按钮、文本框、选择框等)的使用方法。
2、掌握使用布局管理器对组件进行管理的方法。
3、理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
二、实验内容及步骤1、算术测试。
编写一个算术测试小软件,用来训练小学生的算术能力。
程序由3个类组成,具体如下(1) Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;(2) ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame 类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;(3) MainClass是软件的主类。
程序运行效果示例程序运行效果如下图所示:【源程序】【运行截图】*报错正常:2、布局与日历。
编写一个应用程序,有一个窗口,该窗口为BorderLayout布局,具体设计如下:(1)窗口的中心添加一个Panel容器pCenter,pCenter的布局是7行7列的GriderLayout 布局,pCenter中放置49个标签,用来显示日历。
(2)窗口的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月的日历;单击previousMonth按钮,可以显示当前月的上一月的日历。
(3)窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。
程序运行效果示例:程序运行效果如下图所示:【源程序】【运行截图】四、实验小结程序一需要判断number1是否小于number2,否则出现结果为负数的情况后程序不能正常运行。
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编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。
java_实验5_GUI
实验5 GUI图形界面程序设计一、实验目的:●掌握GUI编程的基本概念●掌握基于AWT的图形用户界面编程原理●掌握事件编程的基本技巧●掌握AWT包中的基本组件和awt.event包中的基本事件类●掌握常用布局管理器的使用二、相关知识:现在计算机应用程序基本上都是图形用户界面,所以GUI编程是现代程序必须掌握的内容。
GUI编程的要点是基本图形组件的使用和事件的处理,Java语言提供了两套组件库,一类是早期的AWT包中的重量级组件(必须要有对等组件完成底层的图形生成工作),一类是JDK 1.2版之后提供的swing轻量级组件(纯Java代码实现)。
Java的事件处理采用的是委托代理模型,即事件源对象生成事件对象,由监听器对象接收到事件对象并处理事件。
在初级阶段我们只掌握JDK中提供的事件类和对应的事件接口,在高级阶段我们可以自定义事件类和接口。
应掌握的基本事件类有ActionEvent、WindowEvent、KeyEvent、MouseEvent 等,对应的处理事件的接口有ActionListener、WindowListener、KeyListener、MouseListener、MouseMotionListener等适配器类是SUN公司为了方便程序员而提供的抽象父类,针对具有多个抽象方法的监听器接口提供了默认的实现。
布局管理器用来在容器组件上按一定方式摆放组件。
三、实验内容第一部分:填空实验1.以下程序用来测试各种常用awt中的组件类,请填空完成程序(将运行效果贴图在最后)。
import java.awt.*;import java.awt.event.*;class frametest {public static void main(String[] args) {Frame myframe=new Frame("测试窗口");创建一个Panel对象Panel p11=new Panel();p1.setBackground(Color.red);设置p1的布局管理器为BorderLayout myframe.add(p1);Label lbl=new Label("名称:");创建一个TextField对象p11.add(lbl);p11.add(txt);p1.add(p11,BorderLayout.NORTH);final TextArea ta=new TextArea(5,20);Font myfont=new Font("TimesNewRome",Font.BOLD,24);ta.setFont(myfont);p1.add(ta,BorderLayout.CENTER);Panel p12=new Panel();Button btn=new Button("确定");创建“取消”按钮对象p12.add(btn);p12.add(btn2);p1.add(p12,BorderLayout.SOUTH);p1.add(new Button("东"),BorderLayout.EAST);p1.add(new Button("西"),BorderLayout.WEST);btn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){ta.setText("我已按了确定按钮");}});btn2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {ta.setText("");}});Panel p2=new Panel();创建“老虎”选项Checkbox b2=new Checkbox("狮子");Checkbox b3=new Checkbox("大象",true);p2.add(b1);p2.add(b2);p2.add(b3);p2.setBackground(Color.blue);myframe.add("South",p2);创建Choice对象moviestars.addItem("安东尼奥.班德拉斯");moviestars.addItem("莱昂纳多.迪卡普尼奥");添加"马拉多纳"条目moviestars.addItem("休.葛兰特");moviestars.addItem("朱莉亚.罗萡茨");p2.add(moviestars);myframe.add(new Button("myframe north"),BorderLayout.NORTH); myframe.add(new Button("myframe east"),BorderLayout.EAST);myframe.add(new Button("myframe west"),BorderLayout.WEST); myframe.setSize(360,450);myframe.setVisible(true);myframe.addWindowListener(new WindowCloser());}}2.以下程序测试事件,请填空完成程序。
gui实验报告
gui实验报告《GUI实验报告》摘要:本实验利用图形用户界面(GUI)技术进行了一系列实验,包括界面设计、用户交互、数据展示等方面的内容。
通过实验,我们深入了解了GUI技术的原理和应用,掌握了相关的开发工具和技能。
本报告将详细介绍实验的过程和结果,并对GUI技术的发展和应用进行了简要的展望。
1. 引言GUI技术是计算机界面设计中的重要组成部分,它通过图形化的方式为用户提供了更加直观、友好的操作界面。
随着计算机技术的发展,GUI技术已经成为了各种软件和应用程序的标配,因此对GUI技术的研究和应用具有重要意义。
2. 实验目的本实验旨在通过对GUI技术的学习和实践,深入理解其原理和应用,掌握相关的开发工具和技能,为今后的软件开发和界面设计打下基础。
3. 实验内容本次实验主要包括以下内容:- GUI界面设计:通过使用开发工具,设计一个简单的图形用户界面,包括按钮、输入框、标签等组件。
- 用户交互:实现用户与界面的交互,包括按钮点击、输入框输入等操作。
- 数据展示:将用户输入的数据通过界面展示出来,实现数据的可视化。
4. 实验过程在实验过程中,我们首先学习了GUI界面设计的基本原理和技巧,然后使用开发工具进行了界面的设计和布局。
接着,我们实现了用户与界面的交互,包括按钮点击事件的处理、输入框数据的获取等。
最后,我们将用户输入的数据通过界面展示出来,实现了数据的可视化。
5. 实验结果通过实验,我们成功设计并实现了一个简单的GUI界面,包括按钮、输入框、标签等组件。
用户可以通过界面进行按钮点击、输入框输入等操作,并将输入的数据通过界面展示出来。
实验结果表明,我们已经掌握了GUI技术的基本原理和应用技能。
6. 结论通过本次实验,我们深入了解了GUI技术的原理和应用,掌握了相关的开发工具和技能。
GUI技术的发展和应用前景广阔,我们将继续深入学习和实践,为今后的软件开发和界面设计做好准备。
7. 展望随着计算机技术的不断发展,GUI技术将会越来越重要,它将成为各种软件和应用程序的标配。
实验报告(五)GUI程序设计(完整代码)
实验报告(五)GUI程序设计(完整代码)福建农林⼤学计算机与信息学院实验报告实验(五)GUI程序设计⼀、实验⽬的和要求1.掌握简单GUI的设计和实现2.理解并掌握GUI事件驱动的程序设计3.理解⽹络程序设计⼆、实验内容和原理实现⼀个程序,⽤于浏览⽤户指定的⽂本⽂件。
界⾯如图1所⽰:图1 ⽂本⽂件浏览的⽤户界⾯2、界⾯实现// Panel p to hold a label, a text field, and a button Panel p = new Panel();p.setLayout(new BorderLayout());p.add(new Label("Filename"), BorderLayout.WEST);p.add(jtfFilename, BorderLayout.CENTER);p.add(jbtView, BorderLayout.EAST);// Add jsp and p to the frameadd(jsp, BorderLayout.CENTER);add(p, BorderLayout.SOUTH);3、事件驱动// Register listenerjbtView.addActionListener(new ActionListener() {/**Handle the View button*/public void actionPerformed(ActionEvent e) {if (e.getSource() == jbtView)showFile(); //⾃⼰实现这个⽅法,在textArea中浏览⽂本⽂件内容}});4、⽹络程序设计(可选)实现⼀个⽹络服务,⽤于把指定的⽂件内容传给客户端(见Exp_5_Server.java),在“事件驱动”中调⽤⽅法“showFileFromServer()”package com.fafu.training;import java.awt.BorderLayout;import java.awt.Panel;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileOutputStream; import java.io.FileReader;import java.io.IOException; importjava.io.Inputream;import java.io.Reader;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JScrollPane;import javax.swing.JTextField;public classOpenFileFrame {JTextField textFiled;TextArea fileText;public OpenFileFrame(){super("Exp__GUI");Panel panel=new Panel();setLayout(new BorderLayout()); JScrollPane jsp=new JScrollPane(); panel.setLayout(new BorderLayout()); fileText=new TextArea();JLabel jlabel=new JLabel("FileName"); textFiled=new JTextField();JButtons~jButton=new~JButton("View"); panel.add(jlabel,BorderLayout.WEST); panel.add(textFiled,BorderLayout.CENTER); panel.add(jButton,BorderLayout.EAST);add(panel,BorderLayout.SOUTH);add(jsp,BorderLayout.EAST);add(fileTextBorderLayout.CENTER); jButton.addActionListener( ActionListener(){ @Overridepublic void actionPerformed(ActionEvent ee) { // TODO Auto-generated method stubString s tr=textFiled.getText(); BufferedReader reader;try {reader = new Buffered(new FileReader(str)); String s="";while((s=reader.readLine())!=null){String string =reader.readLine();fileText.append(string +"\r\n");}reader.close();}catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});setVisible;setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以⽤类图、流程图、伪代码或源程序描述)2.实验步骤●界⾯设计与实现●事件驱动程序设计●进⾏编译●进⾏测试,使⽤的测试⽤例:输⼊:预期输出:五、调试过程1.编译过程记录算法实现中发现的语法错误及改正2.调试过程记录算法实现中发现的逻辑错误及改正,对每个测试⽤例,记录实际输出,并与预期输出进⾏⽐较,如果不同,分析产⽣错误的原因并改正。
GUI应用开发JAVA实验报告
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应用程序的开发。
JavaGUI编程实验指导书
Java网络编程实验指导书
实验目标:熟悉Java图形用户接口中的常用关键技术:Java Beans,容器与布局,菜单,工具栏,对话框,列表框,组合框等组件的应用,理解MVC模型
实验内容:请同学们从下面程序清单中任选两项作为上机编程内容,如果时间宽裕,则尽可能多选。
程序清单1:教材P207页事件监听练习程:TestSourceListener.java
程序清单2:教材P228页GridBagLayOut练习程序:ShowGridBagLayout.java
程序清单3:教材P244页滚动窗格练习程序:ScorllMap.java
程序清单4:教材P265页菜单练习程序:MenuDemo.java
程序清单3:教材P278页对话框练习程序:JOptionPaneDemo.java
程序清单3:教材P313页列表框练习程序:ListPropertiesDemo.java
程序清单3:教材P322页组合框练习程序:ComBoxCellRendererDemo.java
实验结果报告:请同学们将各自上机练习的程序代码和运行结果复制到实验报告书中,并在下次上机之前上传到课程公共邮箱。
注意事项:实验报告内容格式示例:
程序清单:test.java
Public class test{
………
……..
}
程序运行结果:
************。
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实验报告
jfrm.setLayout(null); jfrm.setSize(800, 250); jfrm.setTitle("简易计算器");
jtf1.setBounds(100,20,55,25); jtf1.setEditable(false); jfrm.add(jtf1);
将结果显示在第三个文本框中
} } } }
五、测试/调试及实验结果分析
六、实验结论与体会
学会如何使用 GUI 设计一个程序界面。
2015 年 6 月 17 日
难点在于如何能够把 JAVA 的 GUI 中的文本框处理成可输以及不可输入,同时,在创建下 拉菜单加减乘除进行赋值进行计算。觉得 GUI 很难!
second.setText(String.valueOf(secondnum1));
} else {
int i = jco.getSelectedIndex();// 得到当 前下拉列表框的值
String str1 = first.getText();// 得到第一 个文本框的值
String str2 = second.getText();// 得到第 二个文本框的值
static JTextField jtf1 = new JTextField("第一 个数", 5);
static JTextField jtf2 = new JTextField("第二 个数", 5);
static JTextField first = new JTextField("", 20);
Java GUI 简单控件实验报告
一、实验目的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,类。
实验五 JAVA GUI程序设计
实验五JAVAGUI程序设计
班级:
姓名:
学号:
实验地点:
日期:
一、实验目的:念。
熟悉常用的Swing的组件、容器、布局管理器。
能综合利用图形设计方法进行图形用户界面设计。
二、基本技能实验内容、要求和环境:
1.下面是一个java GUI程序,实现将5个按钮添加到JFrame容器中,试分别采用不同的布局管理器,观察按钮的布局情况。
private JButton button1, button2, button3, button4;
(3)在go方法中,为容器设置布局管理。
f = new JFrame("Flow Layout");
f.setLayout(new FlowLayout());
2、代码:
importjava.awt.Button;
六:思考题:
1.什么是MVC模式?
答:MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。
2.不同的布局方式有什么用途?
答:1.FlowLayout(流式布局管理器,构造方法可指定对齐方式、水平垂直间距)
result=x+y;
elseif(op.equals("-"))
result=x-y;
elseif(op.equals("*"))
result=x*y;
elseif(op.equals("/"))
result=x/y;
t4.setText(Double.toString(result));
Java_GUI程序设计综合实验
1.复习以前的课程内容。
2.继续熟练Java用户界面编程。
3.提高自己对综合程序编程的能力。
二、实验内容1.在一个窗口中创建多个菜单并添加进实验编号。
2.分别对应每个菜单项中的实验项目编写程序。
3.在窗口中显示出运行结果。
三、源程序及运行结果Zhonghe1.javapublic class Zhonghe1{public static void main(String args[]){WindowMain win=new WindowMain();win.setTitle("综合设计");}}WindowMain.javaimportjava.awt.*;importjavax.swing.*;import static javax.swing.JFrame.*;importjava.awt.event.*;importjava.util.*;public class WindowMain extends JFrame implements ActionListener{ Box baseBox,boxV1;JMenuBarmenubar;JMenu menu1,menu2,menu3,menu4,menu5;JMenuItem item1,item2,item3,item4;JMenuItem item11;JMenuItem item31,item32;JMenuItem item41,item42;JMenuItem item51,item52;JTextArea text;publicWindowMain(){//setLayout(new BoxLayout());init();setBounds(100,100,650,350);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}voidinit(){//setLayout(new java.awt.FlowLayout());setLayout(new FlowLayout());//boxV1=Box.createV erticalBox();menubar=new JMenuBar();menu1=new JMenu("实验一");menu2=new JMenu("实验二");menu3=new JMenu("实验三");menu4=new JMenu("实验四");menu5=new JMenu("实验五");item1=new JMenuItem("求阶乘");item2=new JMenuItem("100以内素数");item3=new JMenuItem("while,for循环");item4=new JMenuItem("1000以内完数");item11=new JMenuItem("复数运算");item31=new JMenuItem("打印字母表");item32=new JMenuItem("最大公约数和最小公倍数"); item41=new JMenuItem("字符串连接");item42=new JMenuItem("得到字符");item51=new JMenuItem("计算");item52=new JMenuItem("计算器");item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);item11.addActionListener(this);item31.addActionListener(this);item32.addActionListener(this);item41.addActionListener(this);item42.addActionListener(this);item51.addActionListener(this);item52.addActionListener(this);text=new JTextArea(12,55);add(new JScrollPane(text),BorderLayout.CENTER); add(text);//boxV1.add(text);menu1.add(item1);menu1.add(item2);menu1.add(item3);menu1.add(item4);menu2.add(item11);menu3.add(item31);menu3.add(item32);menu4.add(item41);menu4.add(item42);menu5.add(item51);menu5.add(item52);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);menubar.add(menu4);menubar.add(menu5);setJMenuBar(menubar);//baseBox=Box.createHorizontalBox();//baseBox.add(boxV1);//add(baseBox);}public class WindowGY extends JFrame implements ActionListener{ JTextField text1,text2,text3,text4;publicWindowGY(){init1();setBounds(100,100,350,150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}void init1(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);//text1.addActionListener(this);text2.addActionListener(this);add(text1);add(text2);text3=new JTextField(10);text4=new JTextField(10);add(text3);add(text4);}public void actionPerformed(ActionEvent e){String str1=text1.getText();String str2=text2.getText();int n=0,m=0,j=0,k=0;try{n=Integer.parseInt(str1);m=Integer.parseInt(str2);for(int i=1;i<=n;i++){if(0==n%i&&0==m%i)j=i;}k=n*m/j;text3.setText("最大公约数为:"+j);text4.setText("最小公倍数为:"+k);}catch(Exception ee){text3.setText("请输入数字字符");text1.setText(null);text2.setText(null);}}}public class WindowCount extends JFrame implements ActionListener{ JTextField text1,text2;JButton enter;publicWindowCount(){init();setBounds(100,100,350,150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}voidinit(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(15);add(text1);add(text2);enter=new JButton("确定");enter.addActionListener(this);add(enter);}public void actionPerformed(ActionEvent e){String str=text1.getText();StringTokenizerfenxi=new StringTokenizer(str);int number=fenxi.countTokens();int sum=0,n=0;while(fenxi.hasMoreTokens()){str=fenxi.nextToken();int m=Integer.parseInt(str);sum+=m;n++;}text2.setText("和为:"+sum+"平均数为:"+(double)sum/n);}}public class WindowCount1 extends JFrame implements ActionListener{ JTextField text1,text2,text3;JButtonadd,subtract,ride,remove;public WindowCount1(){init();setBounds(100,100,350,150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}voidinit(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);text3=new JTextField(10);add(text1);add(text2);add(text3);add=new JButton("加");subtract=new JButton("减");ride=new JButton("乘");remove=new JButton("除");add.addActionListener(this);ride.addActionListener(this);subtract.addActionListener(this);remove.addActionListener(this);add(add);add(subtract);add(ride);add(remove);}public void actionPerformed(ActionEvent e){if(e.getSource()==add){String str1=text1.getText();String str2=text2.getText();int n=0,m=0,k=0;try{n=Integer.parseInt(str1);m=Integer.parseInt(str2);k=n+m;text3.setText(""+k);}catch(Exception ee){text3.setText("请输入数字字符");text1.setText(null);text2.setText(null);}}if(e.getSource()==subtract){String str1=text1.getText();String str2=text2.getText();int n=0,m=0,k=0;try{n=Integer.parseInt(str1);m=Integer.parseInt(str2);k=n-m;text3.setText(""+k);}catch(Exception ee){text3.setText("请输入数字字符");text1.setText(null);text2.setText(null);}}if(e.getSource()==ride){String str1=text1.getText();String str2=text2.getText();int n=0,m=0,k=0;try{n=Integer.parseInt(str1);m=Integer.parseInt(str2);k=n*m;text3.setText(""+k);}catch(Exception ee){text3.setText("请输入数字字符");text1.setText(null);text2.setText(null);}}if(e.getSource()==remove){String str1=text1.getText();String str2=text2.getText();int n=0,m=0;double k=0,p,q;try{n=Integer.parseInt(str1);m=Integer.parseInt(str2);p=(double)n;q=(double)m;k=p/q;text3.setText(""+k);}catch(Exception ee){text3.setText("请输入数字字符");text1.setText(null);text2.setText(null);}}}}public void actionPerformed(ActionEvent e){ text.setText(null);if(e.getSource()==item1){int sum=0;for(int i=1;i<=20;i++){int m=1;for(int j=1;j<=i;j++){m=m*j;}sum+=m;}text.append("1!+2!+...+20!="+sum);//new WindowCount();//setVisible(true);}if(e.getSource()==item2){text.setText(null);int n=1,m,j,i;boolean h;text.append(2+" ");for(i=3;i<100;i=i+2){m=(int)Math.sqrt(i);h=true;for(j=2;j<=m;j++){if(i%j==0){h=false;break;}}if(h){if(n%6==0){text.append(" ");}text.append(i+" ");n++;}}}if(e.getSource()==item3){text.setText(null);double sum=0;double item=1;int i;int n=20;for(i=1;i<=n;i++){sum=sum+item;item=item*(1.0/(i+1));}text.append("for循环sum="+sum+"\n");double sum1=0,item1=1;int j=1,m=20;while(j<=m){sum1=sum1+item1;j=j+1;item1=item1*(1.0/j);}text.append("while循环sum="+sum1);}if(e.getSource()==item4){text.setText(null);int n=1000;text.append("1000以内的完数有:");for(int i=1;i<=n;i++){int sum=0;for(int counter=1;counter<=i/2;counter++){if(i%counter==0){sum+=counter;}}if(sum==i){text.append("\n"+i);}}}if(e.getSource()==item11){classFuShu {private double Shishu;private double Xushu;publicFuShu(){this.Shishu=0.0f;this.Xushu=0.0f;} ////构造方法1publicFuShu(double s,double x){this.Shishu=s;this.Xushu=x;} //构造方法2public FuShu add(FuShu p){ //两个复数相加FuShu result=new FuShu();result.Shishu=this.Shishu+p.Shishu;result.Xushu=this.Xushu+p.Xushu;text.append("在成员函数中,两数相加之和为:result="+result.Shishu+"+"+result.Xushu+"i"+"\n");return result;}public FuShu sub(FuShu p){ //两个复数相减FuShu result=new FuShu();result.Shishu=this.Shishu-p.Shishu;result.Xushu=this.Xushu-p.Xushu;text.append("在成员函数中,两数相减之差为:result="+result.Shishu+"+"+result.Xushu+"i"+"\n");return result;}public FuShumul(FuShu p){ //两个复数相乘FuShu result=new FuShu();result.Shishu=this.Shishu*p.Shishu-this.Xushu*p.Xushu;result.Xushu=this.Xushu*p.Shishu+p.Xushu*this.Shishu;text.append("在成员函数中,两数相乘之积为:result="+result.Shishu+"+"+result.Xushu+"i"+"\n");return result;}public FuShu div(FuShu p){ //两个复数相除FuShu result=new FuShu(2,2);if(p.Shishu==0&&p.Xushu==0){ //除数为零text.append("除法运算出错,错误原因:除数为零");return null;}else if(p.Shishu==0&&p.Xushu!=0){result.Shishu=(double)this.Xushu*p.Xushu/(p.Xushu*p.Xushu);result.Xushu=(-1)*(double)this.Shishu*p.Xushu/(p.Xushu*p.Xushu);return result;}//仅有虚部为零else if(p.Shishu!=0&&p.Xushu==0){result.Shishu=(double)this.Shishu/p.Shishu;result.Xushu=(double)this.Xushu/p.Shishu;return result;}//实部与虚部均不为零else{result.Shishu=(double)(this.Shishu*p.Shishu-this.Xushu*p.Xushu)/(p.Shishu*p.Shishu+p.Xu shu*p.Xushu);result.Xushu=(double)(this.Shishu*p.Xushu+this.Xushu*p.Shishu)/(p.Shishu*p.Shishu+p.Xu shu*p.Xushu);return result;}}}FuShu a=new FuShu(3,4);FuShu b=new FuShu(5,7);FuShu c=new FuShu();FuShu ADD=a.add(b);FuShu SUB=a.sub(b);FuShu MUL=a.mul(b);FuShu DIV=a.div(c);if(DIV==null)text.append("除数不能为零");elsetext.append("在主函数中:两数相除之商为"+DIV.Shishu+"+"+DIV.Xushu+"i");}if(e.getSource()==item31){class A{charch='a';char ch1='z';int m=(int)ch;int n=(int)ch1;void f(){for(int i=m;i<=n;i++){char ch2=(char)i;text.append(ch2+" ");}}}class B extends A{char GL='α';char GL1='ω';int p=(int)GL;int q=(int)GL1;void g(){for(int j=p;j<=q;j++){char GL2=(char)j;text.append(GL2+" ");}}}B a=new B();text.append("英文字母为:");a.f();text.append("\n");text.append("希腊字母为:");a.g();text.append("\n");}if(e.getSource()==item32){newWindowGY();setVisible(true);}if(e.getSource()==item41){String s1,s2,s3,s4;s1=new String("we are student ");s2=new String("WHA T IS THA T");s3=s1.toUpperCase();s4=s2.toLowerCase();text.append(s1+"转化为大写字母为:"+s3+"\n");text.append(s2+"转化为小写字母为"+s4+"\n");text.append(s1.concat(s4));}if(e.getSource()==item42){String str;str=new String("we need study hard");int a=str.length();text.append("该字符串的长度为:"+a+"\n");text.append("该字符串的第一个字符为:"+str.charAt(0)+"\n");text.append("该字符串的最后一个字符为:"+str.charAt(str.length()-1)+"\n");}if(e.getSource()==item51){newWindowCount();setVisible(true);}if(e.getSource()==item52){new WindowCount1();setVisible(true);}}}四、实验结论与思考通过这次的综合设计使我对Java的综合应用有了更加深入地了解,并且也让我得到了更好的复习,也让我深知在学习的同时也要注重对以往知识的复习,因为只有通过不断的复习才能够让我把知识掌握得更牢固。
实验报告GUI程序设计
实验报告GUI程序设计1.引言GUI(Graphical User Interface,图形用户界面)是计算机系统中用户与计算机之间进行交互的一种方式,它使用了图形和图标等视觉元素来代替传统的文本命令行界面。
在本次实验中,我们学习了GUI程序设计的基本原理和开发方法,并使用Python语言编写了一个简单的GUI程序。
2.实验目的通过本次实验,我们的主要目的是学习以下几个方面的内容:-了解GUI程序设计的基本原理和概念;- 熟悉Python语言中的GUI开发库;-掌握使用GUI开发工具设计和实现简单的GUI程序。
3.实验过程3.1确定需求在开始开发GUI程序之前,我们首先需要确定程序的需求。
在本次实验中,我们决定开发一个简单的计算器程序,该程序能够进行基本的四则运算,并显示计算结果。
3.2设计界面3.3编写代码3.4调试程序在完成代码的编写之后,我们对程序进行了调试。
在调试过程中,我们发现了一些错误,比如按钮的事件处理函数没有正确设置,导致无法进行相应的计算。
通过不断地调试和修改,我们最终成功地解决了这些问题。
3.5测试程序在完成调试之后,我们对程序进行了测试。
测试的过程包括输入不同的表达式,进行相应的计算,并对比计算结果是否正确。
通过多次测试,我们发现程序能够正确地进行四则运算,并显示出正确的计算结果。
4.实验结果通过本次实验,我们成功地实现了一个简单的GUI程序,该程序能够进行基本的四则运算,并显示出正确的计算结果。
该程序界面简洁明了,易于操作,符合用户的需求。
5.实验总结通过本次实验,我们深入学习了GUI程序设计的基本原理和开发方法,并通过实践运用了Python语言编写了一个简单的GUI程序。
在实验过程中,我们遇到了一些问题,并通过调试和测试最终解决了这些问题。
通过实验,我们对GUI程序的开发有了更深入的理解,并掌握了一定的开发技巧。
在今后的学习和工作中,我们将继续学习和探索GUI程序设计的更多内容,提高自己的技术水平,为用户提供更好的使用体验。
javagui课程设计
javagui课程设计一、课程目标知识目标:1. 学生能理解Java GUI编程的基本概念,掌握Swing组件的使用方法。
2. 学生能运用布局管理器设计窗口界面,掌握事件处理机制。
3. 学生了解Java GUI编程中的常用设计模式,例如MVC。
技能目标:1. 学生能独立创建简单的图形用户界面,如计算器、文本编辑器等。
2. 学生具备分析问题、设计GUI界面并解决问题的能力。
3. 学生能运用所学知识,对已有GUI程序进行优化和改进。
情感态度价值观目标:1. 学生培养对编程的兴趣和热情,增强学习Java语言的自信心。
2. 学生树立良好的编程习惯,注重代码规范和界面美观。
3. 学生学会团队协作,共同解决问题,培养沟通能力和合作精神。
课程性质分析:本课程为Java语言高级课程,旨在帮助学生掌握图形用户界面编程技术,提高编程实践能力。
学生特点分析:学生具备一定的Java基础,对编程有初步了解,但对GUI编程可能较为陌生。
教学要求:1. 理论与实践相结合,注重培养学生的动手能力。
2. 以案例驱动教学,引导学生主动探索和解决问题。
3. 注重培养学生的编程思维和创新能力。
二、教学内容1. Swing组件概述- JFrame、JPanel等基本容器组件的使用- JLabel、JButton、JTextField等基本组件的创建与使用2. 布局管理器- 流式布局(FlowLayout)- 东南西北中布局(BorderLayout)- 网格布局(GridLayout)- 盒式布局(BoxLayout)3. 事件处理- 事件监听器接口- 事件适配器- 动作事件、鼠标事件、键盘事件等处理机制4. 常用组件与布局组合- 计算器界面设计- 文本编辑器界面设计- 菜单、工具栏等高级组件的使用5. MVC设计模式- 模型(Model)- 视图(View)- 控制器(Controller)- MVC模式在GUI编程中的应用实例6. GUI程序调试与优化- 代码规范与优化- 界面美观与用户体验- 异常处理与调试技巧教学进度安排:1. 第1周:Swing组件概述、基本组件的使用2. 第2周:布局管理器、事件处理3. 第3周:常用组件与布局组合、计算器界面设计4. 第4周:文本编辑器界面设计、菜单、工具栏等高级组件的使用5. 第5周:MVC设计模式、GUI程序调试与优化教学内容关联教材章节:1. Swing组件与布局管理器:第X章2. 事件处理:第X章3. 常用组件与布局组合:第X章4. MVC设计模式:第X章5. GUI程序调试与优化:第X章三、教学方法1. 讲授法:- 对于Swing组件、布局管理器等基本概念和原理,采用讲授法进行教学,结合PPT展示,使学生对知识点有清晰的认识。
javagui课程设计
javagui课程设计一、课程目标知识目标:1. 让学生掌握Java GUI编程的基础知识,理解Swing组件的用法和布局管理器的原理;2. 学会使用常用Swing组件如JFrame、JButton、JTextField等,并能结合事件处理机制编写交互式程序;3. 掌握菜单、工具栏、对话框等高级组件的使用方法,提高界面的丰富性和友好性。
技能目标:1. 培养学生运用Java GUI编程解决实际问题的能力,能独立设计和实现简单图形用户界面;2. 提高学生分析问题、解决问题的能力,通过编写代码实现界面功能,锻炼逻辑思维和编程技巧;3. 培养学生团队协作和沟通能力,分组完成任务,共同解决问题。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习热情,树立编程自信心;2. 培养学生严谨、细致的学习态度,养成良好的编程习惯,注重代码规范和界面设计;3. 增强学生的创新意识,鼓励尝试新方法,培养勇于克服困难的意志品质。
课程性质:本课程为Java GUI编程的入门课程,旨在让学生掌握图形用户界面编程的基本知识和技能。
学生特点:学生具备一定的Java编程基础,对图形用户界面有一定的认识,但对Swing组件和事件处理机制了解较少。
教学要求:结合实际案例,采用任务驱动法,引导学生主动探究,注重实践操作,提高编程能力。
同时,关注学生的个体差异,因材施教,使学生在课程学习中取得最佳效果。
通过课程学习,将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. Swing组件和布局管理器- JFrame、JPanel等容器组件的使用;- 布局管理器:BorderLayout、FlowLayout、GridLayout等;- Swing组件的常用属性设置。
2. 常用Swing组件- JButton、JTextField、JPasswordField等输入组件;- JLabel、JTextArea等显示组件;- JComboBox、JList等选择组件。
Java-GUI编程
Java-GUI编程GUI全称是Graphical User Interface,即图形⽤户界⾯。
顾名思义,就是应⽤程序提供给⽤户操作的图形界⾯,包括窗⼝、菜单、按钮、⼯具栏和其他各种图形界⾯元素。
⽬前,图形⽤户界⾯已经成为⼀种趋势,⼏乎所有的程序设计语⾔都提供了GUI设计功能。
Java中针对GUI 设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和Swing。
AWT是⽤于创建图形⽤户界⾯的⼀个⼯具包,它提供了⼀系列⽤于实现图形界⾯的组件,如窗⼝、按钮、⽂本框、对话框等。
如下图:其中,Component类通常被称为组件,根据Component的不同作⽤,可将其分为基本组件类和容器类。
⽽容器类则是通过Component的⼦类Container实例化的对象。
Container类表⽰容器,它是⼀种特殊的组件,可以⽤来容纳其他组件。
1、FrameFrame相当于⼀个⼤的框架,再它⾥⾯可以放多个组件、多个⾯版。
它是相对于了window界⾯来说的。
//创建⼀个Frame实例对象:Frame frame = new Frame("This is my first FrameTest");//设置界⾯可见:frame.setVisible(true);//设置窗⼝⼤⼩:frame.setSize(500,500);//设置背景颜⾊:frame.setBackground(Color.orange);//设置弹出初始位置:frame.setLocation(500,500);//设置界⾯⼤⼩固定:frame.setResizable(false);2、PanelPanel也是⼀个容器,但是它不能单独存在,只能存在其他容器(Window或其⼦类)中,⼀个Panel对象代表了⼀个长⽅形的区域,在这个区域中可以容纳其他组件。
在程序中通常会使⽤Panel来实现⼀些特殊的布局。
javagui实训心得 java实训心得体会
javagui实训心得背景在大学期间,作为计算机科学学生,我们需要学习并掌握各种编程语言和技术。
其中,Java是一门非常重要的编程语言,具有广泛的应用领域。
在学习Java编程的过程中,GUI(图形用户界面)是一个非常重要的知识点。
为了更好地理解和掌握Java GUI编程,我们进行了一次实训。
实训内容本次实训主要涉及Java GUI编程的基本概念和使用方法。
我们学习了如何使用Java Swing库来构建用户界面,并使用事件监听器来实现交互功能。
实训课程包括以下几个重要主题:1. Java Swing库介绍Java Swing是Java的一个GUI工具包,为Java程序员提供了丰富的GUI组件和功能。
在实训中,我们学习了如何导入Swing库,并了解了其中一些常用组件的使用方法,例如按钮、文本框、标签等。
2. 布局管理器布局管理器是用于控制GUI组件在容器中的位置和大小的工具。
我们学习了几种常见的布局管理器,包括流式布局、边界布局和网格布局。
通过使用不同的布局管理器,我们可以灵活地控制GUI界面的布局。
3. 事件处理Java GUI编程中,事件处理是非常重要的一部分。
我们学习了如何使用事件监听器来响应用户的交互操作。
通过为按钮、菜单等组件添加事件监听器,我们可以实现各种交互功能,例如按钮点击、菜单选择等。
4. 图形绘制在实训中,我们还学习了如何使用Java的绘图功能来进行图形绘制。
通过使用绘图工具和绘图方法,我们可以实现各种复杂的图形效果,例如线条、矩形、椭圆等。
实训体会通过参加这次实训,我对Java GUI编程有了更深入的理解和掌握。
以下是我对这次实训的一些体会和收获:1. 理论与实践结合通过实际编写代码并构建GUI界面,我对课本知识有了更深入的理解。
在实训中,我不仅学习了理论知识,还通过实际操作来巩固和应用所学内容。
这种理论与实践结合的方式,使我更好地掌握了JavaGUI编程的基本原理和技术。
2. 独立思考与解决问题能力的提升在实训过程中,我们需要独立思考和解决各种遇到的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九 Java GUI1.实验目的(1)了解Java图形用户界面开发步骤。
(2)掌握Java图形用户界面常用组件的使用。
(3)掌握Java图形用户界面事件处理。
(4)掌握WindowBuilder安装及用法。
2.实验内容实验题1完成图9-1所示学籍管理主界面的设计与制作。
基本要求:如果输入用户名:admin,密码:123456,则弹出如图9-2所示窗口,否则弹出如图9-3所示窗口。
图9-1 登录界面图9-2 登录界面图9-3 登录界面import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JPasswordField;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class luanch extends JFrame {/****/private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField usertextField;private JPasswordField passwordField;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {luanch frame = new luanch();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public luanch() {setTitle("\u767B\u9646");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel userNewLabel = new JLabel("用户名 ");userNewLabel.setBounds(118, 60, 72, 18);contentPane.add(userNewLabel);JLabel passNewLabel_1 = new JLabel("密码");passNewLabel_1.setBounds(118, 103, 72, 18);contentPane.add(passNewLabel_1);JButton leftNewButton = new JButton("确定");leftNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if("admin".equals(usertextField.getText())&&"123456".equals(passwordField.getText())){ JOptionPane.showMessageDialog(null, "恭喜您,登录成功!!!");}else{JOptionPane.showMessageDialog(null, "登录失败!");}}});leftNewButton.setBounds(68, 191, 113, 27);contentPane.add(leftNewButton);JButton rightNewButton_1 = new JButton("取消");rightNewButton_1.setBounds(234, 191, 113, 27);contentPane.add(rightNewButton_1);usertextField = new JTextField();usertextField.setBounds(211, 57, 86, 24);contentPane.add(usertextField);usertextField.setColumns(10);passwordField = new JPasswordField();passwordField.setBounds(211, 100, 86, 24);contentPane.add(passwordField);}}实验题3完成图9-5 所示图形界面的制作。
图9-5 登录界面import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JComboBox;import javax.swing.JRadioButton;import javax.swing.JButton;public class person extends JFrame {/****/private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField numbertextField;private JTextField textField_1;private JTextField oldtextField;private JTextField phonetextField;private JTextField bumentextField;private JTextField daytextField;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {person frame = new person();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public person() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel numberLabel = new JLabel("编号:");numberLabel.setBounds(25, 13, 72, 18);contentPane.add(numberLabel);numbertextField = new JTextField();numbertextField.setBounds(93, 10, 86, 24);contentPane.add(numbertextField);numbertextField.setColumns(10);JLabel nameLabel = new JLabel("\u59D3\u540D:");nameLabel.setBounds(247, 13, 59, 18);contentPane.add(nameLabel);textField_1 = new JTextField();textField_1.setBounds(320, 10, 86, 24);contentPane.add(textField_1);textField_1.setColumns(10);JLabel sort = new JLabel("类别:");sort.setBounds(25, 72, 53, 18);contentPane.add(sort);JLabel sex = new JLabel("性别");sex.setBounds(234, 72, 52, 18);contentPane.add(sex);JRadioButton manButton = new JRadioButton("男"); manButton.setBounds(296, 68, 52, 27);contentPane.add(manButton);JRadioButton womanButton = new JRadioButton("\u5973"); womanButton.setBounds(353, 68, 65, 27);contentPane.add(womanButton);JLabel oldLabel = new JLabel("年龄:");oldLabel.setBounds(25, 126, 72, 18);contentPane.add(oldLabel);oldtextField = new JTextField();oldtextField.setBounds(112, 123, 86, 24); contentPane.add(oldtextField);oldtextField.setColumns(10);JLabel phoneLabel = new JLabel("电话:"); phoneLabel.setBounds(232, 126, 72, 18);contentPane.add(phoneLabel);phonetextField = new JTextField();phonetextField.setBounds(320, 123, 86, 24); contentPane.add(phonetextField);phonetextField.setColumns(10);JLabel bumenLabel = new JLabel("所在部门:"); bumenLabel.setBounds(25, 158, 83, 18);contentPane.add(bumenLabel);bumentextField = new JTextField();bumentextField.setBounds(112, 155, 86, 24); contentPane.add(bumentextField);bumentextField.setColumns(10);JLabel dayLabel = new JLabel("注册日期:"); dayLabel.setBounds(232, 158, 86, 18);contentPane.add(dayLabel);daytextField = new JTextField();daytextField.setBounds(320, 155, 86, 24);contentPane.add(daytextField);daytextField.setColumns(10);JButton addButton = new JButton("添加");addButton.setBounds(85, 215, 113, 27);contentPane.add(addButton);JButton closedButton = new JButton("关闭");closedButton.setBounds(235, 215, 113, 27);contentPane.add(closedButton);String ss[] = {"管理","技术","后勤"};JComboBox comboBox = new JComboBox(ss);comboBox.setBounds(93, 69, 78, 24);contentPane.add(comboBox);}}实验题4 完成图9-6 所示图形界面的制作,相关数据从数据库中读取。