实验报告(五)GUI程序设计(完整代码)
JavaGUI实验报告

jfrm .setSize(800, 250);
jfrm .setTitle( "简易计算器");
jtf1 .setBounds(100,20,55,25);
jtf1 .setEditable( false );
jfrm .add( jtf1 );
//第一个文本框
_CLOSE);
}
@Override
public void actionPerformed(ActionEvente) {
// TODO自动生成的方法存根
if ( e.getSource() == out )
System. exit (0);
}
else if (e.getSource() == clear )
一、实验目的及要求
利用所学知识*设计出所要求的GUI'掌握组件的事件响应原理。
二、实验原理与内容
设计如下图的圏形用尸界面并实现其相应功能.在下图中,按BE^JComboBox中选择府运算.可对弟一个数和第二 个推进行加、减*乘和除.结果在捲后一-tJTextField^显示。
三、实验软硬件环境
Windows7旗舰版电脑一台
{
double firstnuml =0.0 ;
double secondnum1 =0.0;
first .setText(String. valueOf (firstnum1 )); second .setText(String. valueOf (secondnum1 ));
}
else
{
int i = jco .getSelectedlndex();//得到当
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,否则出现结果为负数的情况后程序不能正常运行。
GUI程序设计范文

GUI程序设计范文GUI程序设计是指通过图形化界面来创建和操作计算机程序的一种方法。
与传统的命令行界面相比,GUI界面更加直观、易于操作,使用户能够更方便地使用和控制程序。
在GUI程序设计中,开发人员通常会使用特定的图形界面库或开发工具来实现界面设计和交互功能。
1.界面设计:GUI程序的核心就是其界面,好的界面设计能够提升用户体验。
界面设计主要包括对窗口、按钮、菜单、文本框等控件的布局和样式的设计。
开发人员需要考虑用户习惯、易用性、视觉效果等因素来设计出符合用户需求的界面。
2.事件处理:与命令行程序不同,GUI程序通过用户的操作触发不同的事件。
开发人员需要编写相应的事件处理函数来响应不同的事件,例如按钮点击、菜单选择、鼠标移动等。
事件处理函数一般会调用其他功能模块来完成具体的任务。
3.功能实现:GUI程序通常可以实现丰富的功能,如数据处理、文件操作、网络通信等。
开发人员需要根据实际需求来实现这些功能,以便用户可以通过图形界面来完成相应的操作。
4.数据展示:GUI程序可以通过图表、表格、图像等方式来展示数据。
开发人员需要选择合适的方式来展示数据,以便用户可以清晰地了解数据的内容和变化。
5.用户交互:GUI程序通常会提供丰富的交互方式,如拖拽、复制粘贴、快捷键等。
开发人员需要设计合适的交互方式,以方便用户使用和操作。
在GUI程序设计中,常用的开发工具和库包括Java中的Swing和JavaFX、Python中的Tkinter和PyQt、C#中的Windows Forms和WPF等。
这些工具和库提供了丰富的组件和函数,可以帮助开发人员快速实现界面设计和交互功能。
总之,GUI程序设计是一项关注用户体验和界面设计的工作,通过图形界面使用户能够更方便地使用和控制计算机程序。
在GUI程序设计中,开发人员需要考虑界面设计、事件处理、功能实现、数据展示和用户交互等方面的内容,以实现一个满足用户需求的GUI程序。
JAVA-SWING图形界面程序设计实验报告(附完整代码)

图形界面(GUI)程序设计一、课题内容和要求内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。
要求:学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。
通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。
二、设计思路分析class RMBtoDollar:主类,调用主函数。
class change:设置界面,并通过界面上的事件触发实现汇率转换。
三、概要设计public class RMBtoDollar{public static void main(String[] args);}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change();public void mousePressed(MouseEvent e);public void mouseClicked(MouseEvent e);public void mouseEntered(MouseEvent e);public void mouseExited(MouseEvent e);public void mouseReleaseed(MouseEvent e);//鼠标释放时进行转换}四、详细设计import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RMBtoDollar {public static void main(String[] args) {new change();}}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change() {//添加组件和设置布局l1 = new JLabel("人民币/元:");l2 = new JLabel("美元/dollar:");l3=new JLabel("(汇率:6.17)");tf1 = new JTextField(12);tf2 = new JTextField(12);b = new JButton("转换");add(l1);add(tf1);add(l2);add(tf2);add(l3);add(b);setLayout(new FlowLayout(FlowLayout.CENTER));setTitle("人民币转换为美元");setBounds(300, 300, 300, 150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);b.addMouseListener(this);//鼠标事件监视器}public void mousePressed(MouseEvent e) {if (tf2.getText() != null) {// tf2 test 默认初始设为空tf2.setText("");}}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseReleased(MouseEvent e) {if (tf1.getText() != null) {// 检查tf1 test 是否为空try {// 取异常RMB = Double.parseDouble(tf1.getText());// 字符转为double型Dollar = RMB / 6.17;//转换tf2.setText("" + Dollar);// 显示} catch (Exception ex) {tf1.setText("");// 如果输入不是数字,设为空}}}}五、测试数据及其结果分析1正常输入:2输入字符串不能转为double型时清空输入框:3结果:输出正常。
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程序设计实验报告

广州大学实验报告学院工商管理学院专业、班级电子商务姓名、学号课程名称 Java语言程序设计项目名称 GUI 程序设计实验时间:2013年 06月 09日GUI 程序设计实验报告开课实验室:文俊东6062013年06月09日2. 由于GUI程序已是消息驱动的,程序运行后就处于一个循环中,因此原仿真程序中Calcface中的input()方法以及Calculator中的on()方法就可弃之不用了。
3.改造Toyface,为计算器界面布局,并将Toyface与Runcale合并使之能与calculator相连。
4. System.out.println需改成向Jlabel对象输出的语句三、实验过程原始记录(数据、图表、计算等)1.运行程序2.进行运算3.计算器其他按钮的功能实现1)C的功能实现按C后计算机只录入9*;2)N的功能实现按N后结果变成-153)A的功能实现按A后清空归零四、实验感悟本次实验相对比较简单,只需要安排好显示界面和将两个合并之后再对一些细节部分进行修改就可以了。
完成实验后我对显示界面的布局更加了解了。
五、附录(自己实现的源代码)/////// CalcFace.java ///////import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import javax.swing.BorderFactory;import javax.swing.JLabel;import javax.swing.JPanel;import poundBorder;class CalcFace extends JPanel implements ActionListener{public CalcFace(String k, byte pr){keys = k;prec = pr++;nbuf = new StringBuffer(prec);reset1();errorMode=false;errorStr="";d = new JLabel(in, JLabel.RIGHT);setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLoweredBevelBorder(), BorderFactory.createEmptyBorder(5, 10, 5, 10)));setLayout(new BorderLayout()); //设置布管理器reset2();add(d);addMouseListener(new ClickHandler(this)); //注册事件监听器}public void setCalc(Calculator ca){calc = ca;}public void showNumber(String s) {d.setText(hl+prompt + s+ht);}public void showOp(char op) {}//如果输入的str为空,则清除errorMode//相当于主控模决发送一个消息给计算器,使其可知道当前计算器对象当前的状态public void errorInput(String str){if(str.equals("")){errorMode=false;errorStr="";}else{errorMode=true;errorStr=str;prompt=prompt+"( "+str+ " )";}}public void showStatus(String e){prompt=e;}private void enter(char c){//当计算器处于溢出状态时,只充许其在下面这段代码中执行。
GUI程序设计

实验四 GUI 设计 专业学号 姓名 成绩1. 创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入a ,b ,c 的值和x 取值范围(最大值和最小值)。
设计的界面结果:a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));c=str2num(get(handles.edit3,'string'));x0=str2num(get(handles.edit5,'string'));x1=str2num(get(handles.edit6,'string'));x=x0:0.1:x1;y=a*x.^2+b*x+c;axes(handles.axes1)plot(x,y)2. 设计一个GUI ,完成画出y=sin(x)、y=cos(x)和y=x3.的波形图。
设计的界面结果:t=0:0.1:2*pi;x=sin(t);axes(handles.axes1)plot(t,x)t=0:0.1:2*pi;y=cos(t);axes(handles.axes1)plot(t,y)t=0:0.1:2*pi;z=t.^3;axes(handles.axes1)plot(t,z)quit3. 创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。
设计的界面结果:Set(gcf,’color’,’r’)4.使用GUI设计一个计算器,可以实现两个数的和运算,这两个加数可以任意输入,结果显示在窗口中。
设计的界面结果:a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));c=a+b;set(handles.text3,'string',c)5.设计一个能够运算加减乘除的计算器。
gui实验报告

gui实验报告《GUI实验报告》摘要:本实验利用图形用户界面(GUI)技术进行了一系列实验,包括界面设计、用户交互、数据展示等方面的内容。
通过实验,我们深入了解了GUI技术的原理和应用,掌握了相关的开发工具和技能。
本报告将详细介绍实验的过程和结果,并对GUI技术的发展和应用进行了简要的展望。
1. 引言GUI技术是计算机界面设计中的重要组成部分,它通过图形化的方式为用户提供了更加直观、友好的操作界面。
随着计算机技术的发展,GUI技术已经成为了各种软件和应用程序的标配,因此对GUI技术的研究和应用具有重要意义。
2. 实验目的本实验旨在通过对GUI技术的学习和实践,深入理解其原理和应用,掌握相关的开发工具和技能,为今后的软件开发和界面设计打下基础。
3. 实验内容本次实验主要包括以下内容:- GUI界面设计:通过使用开发工具,设计一个简单的图形用户界面,包括按钮、输入框、标签等组件。
- 用户交互:实现用户与界面的交互,包括按钮点击、输入框输入等操作。
- 数据展示:将用户输入的数据通过界面展示出来,实现数据的可视化。
4. 实验过程在实验过程中,我们首先学习了GUI界面设计的基本原理和技巧,然后使用开发工具进行了界面的设计和布局。
接着,我们实现了用户与界面的交互,包括按钮点击事件的处理、输入框数据的获取等。
最后,我们将用户输入的数据通过界面展示出来,实现了数据的可视化。
5. 实验结果通过实验,我们成功设计并实现了一个简单的GUI界面,包括按钮、输入框、标签等组件。
用户可以通过界面进行按钮点击、输入框输入等操作,并将输入的数据通过界面展示出来。
实验结果表明,我们已经掌握了GUI技术的基本原理和应用技能。
6. 结论通过本次实验,我们深入了解了GUI技术的原理和应用,掌握了相关的开发工具和技能。
GUI技术的发展和应用前景广阔,我们将继续深入学习和实践,为今后的软件开发和界面设计做好准备。
7. 展望随着计算机技术的不断发展,GUI技术将会越来越重要,它将成为各种软件和应用程序的标配。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
add(jsp,BorderLayout.EAST);
add(fileTextBorderLayout.CENTER); jButton.addActionListener( ActionListener(){
@Override
public void actionPerformed(ActionEvent ee) {
// Get file name from the text field
StringfileName =jtfFilename.getText().trim();
jtaFile.setText("");
try{
// Create Socket
Socket socket =newSocket(IP_ADDRESS,PORT_NUMBER);
import javax.swing.JTextField;
public class
OpenFileFrame {
JTextField textFiled;TextArea fileText;
public OpenFileFrame()
{
super("Exp__GUI");
Panel panel=new Panel();
java.io.Inputream;
import java.io.Reader;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
1、界面设计
CENTER
// Add jtaFile to a scroll pane
JScrollPanejsp =newJScrollPane(jtaFile);
SOUTH
Filename View
WEST
CENTER
EAST
2、界面实现
// Panel p to hold a label, a text field, and a button
System.err.println("Don't know about host: taranis. ");
}
catch(IOException ex) {
System.out.println(ex.getMessage());
}
finally{
}
textFiled=new JTextField();
JButtons~jButton=new~JButton("View");panel.add(jlabel,BorderLayout.WEST);panel.add(textFiled,BorderLayout.CENTER);panel.add(jButton,BorderLayout.EAST);
out.println(fileName);
Stringstr;
while((str = in.readLine()) !=null) {
jtaFile.append(str +'\n');
}
out.close();
in.close();
socket.close();
}
catch(UnknownHostException e) {
{
String string =reader.readLine();
fileText.append(string +"\r\n");
}
reader.close();
}
catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
输入:
预期输出:
实际输出:
分析
六、实验结果
用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。
输入:
输出结果:
结果分析:
七、总结
对上机实验结果进行分析、上机的心得体会及改进意见。
附录:
如果原来的算法中发现了错误,在附录中附上改正后的算法实现。
privatevoidshowFileFromServer() {
// TODO Auto-generated method stub
Stringstr=textFiled.getText();
BufferedReader reader;
try {
reader = new Buffered(new FileReader(str));
String s="";
while((s=reader.readLine())!=null)
三、实验环境
1.硬件环境:
2.软件环境:JDK1.5
四、算法描述及实验步骤
1.算法描述(可以用类图、流程图、伪代码或源程序描述)
2.实验步骤
界面设计与实现
事件驱动程序设计
进行编译
进行测试,使用的测试用例:
输入:预期输出:
五、调试过程
1.编译过程
记录算法实现中发现的语法错误及改正
2.调试过程
记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出,并与预期输出进行比较,如果不同,分析产生错误的原因并改正。
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;
e1.printStackTrace();
}ቤተ መጻሕፍቲ ባይዱ
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
setVisible; setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileReader;
import java.io.IOException; import
Panel p =newPanel();
p.setLayout(newBorderLayout());
p.add(newLabel("Filename"), BorderLayout.WEST);
p.add(jtfFilename, BorderLayout.CENTER);
p.add(jbtView, BorderLayout.EAST);
福建农林大学计算机与信息学院实验报告
系
软件工程
专业
年级
11级
成绩
姓名
学号
实验室
机号
实验时间
教师签字
实验(五)
一、实验目的和要求
1.掌握简单GUI的设计和实现
2.理解并掌握GUI事件驱动的程序设计
3.理解网络程序设计
二、实验内容和原理
实现一个程序,用于浏览用户指定的文本文件。界面如图1所示:
图1文本文件浏览的用户界面
/**HandletheViewbutton*/
publicvoidactionPerformed(ActionEvent e) {
if(e.getSource() ==jbtView)
showFile();//自己实现这个方法,在textArea中浏览文本文件内容
}
});
4、网络程序设计(可选)
实现一个网络服务,用于把指定的文件内容传给客户端(见Exp_5_Server.java),在“事件驱动”中调用方法“showFileFromServer()”
PrintWriter out =newPrintWriter(socket.getOutputStream(),true);
BufferedReader in =newBufferedReader(newInputStreamReader( socket.getInputStream()));
//Print aline to thestream
setLayout(new BorderLayout());
JScrollPane jsp=new JScrollPane();
panel.setLayout(new BorderLayout());
fileText=new TextArea();
JLabel jlabel=new JLabel("FileName");
// Add jsp and p to the frame
add(jsp, BorderLayout.CENTER);
add(p, BorderLayout.SOUTH);
3、事件驱动
// Register listener
jbtView.addActionListener(newActionListener() {