实验九Java图形用户界面设计1
- 格式:doc
- 大小:212.50 KB
- 文档页数:7
西安邮电大学(计算机学院)课内实验报告实验名称:图形用户界面专业名称:计算机科学与技术班级:计科1405班学生姓名:高宏伟学号:04141152指导教师:刘霞林实验日期:2016.11.24一、实验目的了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
二、实验要求1. 掌握使用布局管理器对组件进行管理的方法。
2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3. 掌握编写独立运行的窗口界面的方法。
4. 掌握组件的使用方法。
5. 了解对话框的使用方法。
三、实验内容(一)算术测试。
✧实验要求:编写一个算术测试小软件,用来训练小学生的算术能力。
程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。
✧程序模板:Teacher.javapublic class Teacher{ int numberOne,numberTwo;String operator="";boolean right;public int giveNumberOne(int n){ numberOne=(int)(Math.random()*n)+1;return numberOne;}public int giveNumberT wo(int n){ numberTwo=(int)(Math.random()*n)+1;return numberTwo;}public String giveOperator(){ double d=Math.random();if(d>=0.5)operator="+";elseoperator="-";return operator;}public boolean getRight(int answer){ if(operator.equals("+")){ if(answer==numberOne+numberTwo)right=true;elseright=false;}else if(operator.equals("-")){ if(answer==numberOne-numberTwo)right=true;elseright=false;}return right;}}ComputerFrame.javaimport java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult;Button getProblem,giveAnwser;Label operatorLabel,message;Teacher teacher;ComputerFrame(String s){ super(s);teacher=new Teacher();setLayout(new FlowLayout());textOne=【代码1】 //创建textOne,其可见字符长是10textTwo=【代码2】 //创建textTwo,其可见字符长是10textResult=【代码3】 //创建textResult,其可见字符长是10operatorLabel=new Label("+");message=new Label("你还没有回答呢");getProblem=new Button("获取题目");giveAnwser=new Button("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0);}});}public void actionPerformed(ActionEvent e){ if(【代码7】) //判断事件源是否是getProblem{ int number1=teacher.giveNumberOne(100);int number2=teacher.giveNumberTwo(100);String operator=teacher.givetOperator();textOne.setText(""+number1);textTwo.setText(""+number2);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);}if(【代码8】) //判断事件源是否是giveAnwser{ String answer=textResult.getText();try{int result=Integer.parseInt(answer);if(teacher.getRight(result)==true){ message.setText("你回答正确");}else{ message.setText("你回答错误");}}catch(NumberFormatException ex){ message.setText("请输入数字字符");}}textResult.requestFocus();validate();}}MainClass.javapublic class MainClass{ public static void main(String args[]){ ComputerFrame frame;frame=【代码9】//创建窗口,其标题为:算术测试}}✧实验后的练习:1. 给上述程序增加测试乘、除的功能。
河南工业大学实验报告专业班级: 计科F1401 学号: 姓名:实验单元八【实验目的】1.掌握程序设计方法2.掌握程序设计方法3.掌握程序设计方法4.掌握程序设计方法5、掌握使用????程序设计方法。
【实验环境】安装了jdk软件的PC机。
【实验内容】第18章、图形界面。
【程序功能内容说明】设置标签的显示字体、大小背景及颜色。
【实验程序原码】import java.awt.Dimension ;import java.awt.Color ;import java.awt.Font ;import java.awt.Point ;import javax.swing.JLabel ;import javax.swing.JFrame ;public class JLabelDemo02{public static void main(String args[]){JFrame frame = new JFrame("Welcome To MLDN") ;JLabel lab = new JLabel("MLDN",JLabel.CENTER) ; // 实例化标签对象Font fnt = new Font("Serief",Font.ITALIC + Font.BOLD,28) ;lab.setFont(fnt) ;frame.add(lab) ; // 将组件件入到面板之中Dimension dim = new Dimension() ;frame.setBackground(Color.WHITE) ;//设置窗体的背景颜色dim.setSize(200,70) ;frame.setSize(dim) ;Point point = new Point(300,200) ; // 设置坐标frame.setLocation(point) ;frame.setVisible(true) ;}};【实验结果】【该程序关键技术说明】JFrame作为基本容器用于创建窗口。
[兔年惊喜]Java语言程序设计实验九第八章Swing图形用户界面程实验报告课程Java语言程序设计实验名称第八章Swing图形用户界面程序设计实验任务(三)第页专业班级学号____姓名实验日期:2022年11月9日报告退发(订正、重做)一、实验目的布局管理器的使用二、实验环境1、微型计算机一台2、DOS或WINDOWS操作系统,j2e开发包三、实验内容创建一个框架类实例对象app作为窗体,请问窗体的内容窗格默认的布局管理器是什么?往窗体内容窗格的中心区域添加一个面板,请问面板的默认布局管理器是什么?往面板添加若干的按钮或其它的组件,然后改变窗口大小,观察组件位置的变化,体会FlowLayout布局管理器的特点。
默认采用的是居中,如何设置为左对齐?设置面板的布局管理器为BorderLayout,往5个区域分别添加5个组件,改变窗体大小,观察这5个区域的变化情况,体会BorderLayout布局管理器的特点。
设置面板的布局管理器为Bo某Layout,分别设置水平放置和垂直放置,往面板中添加组件,改变窗体大小,观察面板的变化,体会Bo某Layout的特点。
设置布局管理器为GridLayout,设置不同的行列,观察组建的摆放方式,体会GridLayout布局管理器的特点设置面板的布局管理器为GridBagLayout,按照不同的长宽放置组件,体会该布局管理器的作用和特点四、实验步骤和结果1.在Eclipe中新建名字为tet8的工程。
2.问题1:创建一个框架类实例对象app作为窗体,窗体的内容窗格默认的布局管理器是边界布局管理器(BorderLayout)3.问题2:往窗体内容窗格的中心区域添加一个面板,面板的默认布局管理器是流布局管理器(FlowLayout)4.FlowLayout布局管理器问题及实现①默认居中:importjava.awt.BorderLayout;importjava.awt.Container;importjava某.wing.JButton;importjava某.wing.JFrame;importjava某.wing.JPanel;publicclaFlowLayout1{publictaticvoidmain(String[]arg){JFramejf=newJFrame(\流布局管理器窗体\);Containerc=jf.getContentPane();JPanelp=newJPanel();p.add(newJButton(\));p.add(newJButton(\));p.add(newJButton(\ ));p.add(newJButton(\));p.add(newJButton(\));p.add(newJButton(\) );p.add(newJButton(\));p.add(newJButton(\));p.add(newJButton(\)) ;c.add(p,BorderLayout.CENTER);jf.etSize(300,300);jf.etDefaultCloeOperation(JFrame.E某IT_ON_CLOSE);jf.etLocationRelativeTo(null);}}jf.etViible(true);②改变窗口大小,窗口中的组件位置会窗体的横向拉动而变化③左对齐5.BorderLayout布局管理器问题及实现importjava.awt.BorderLayout;importjava.awt.Container;importjava某.wing.JButton;importjava某.wing.JFrame;importjava某.wing.JPanel;publicclaBorderLayout1{publictaticvoidmain(String[]arg){JFramejf=newJFrame(\边界布局管理器窗体\);Containerc=jf.getContentPane();JPanelp=newJPanel();p.etLayout(newBorderLayout());p.add(newJButton(\),BorderLayout.EAST);p.add(newJButton(\),B orderLayout.WEST);p.add(newJButton(\),BorderLayout.SOUTH);p.add( newJButton(\),BorderLayout.NORTH);p.add(newJButton(\),BorderLayo ut.CENTER);c.add(p,BorderLayout.CENTER);jf.etSize(300,300);}jf.etDefaultCloeOperation(JFrame.E某IT_ON_CLOSE);jf.etLocationRelativeTo(null);jf.etViible(true);}6.Bo某Layout布局管理器问题及实现①水平放置importjava.awt.BorderLayout;importjava.awt.Container;importjava某.wing.Bo某Layout;importjava某.wing.JButton;importjava某.wing.JFrame;importjava某.wing.JPanel;publicclaBo某Layout1{publictaticvoidmain(String[]arg){JFramejf=newJFrame(\盒式布局管理器窗体\);Containerc=jf.getContentPane();JPanelp=newJPanel();p.etLayout(newBo某Layout(p,Bo某Layout.某_A某IS));p.add(newJButton(\));p.add(newJButton(\));p.add(newJButton( \));p.add(newJButton(\));p.add(newJButton(\));c.add(p,BorderLayout.CENTER);jf.etSize(300,300);jf.etDefaultCloeOperation(JFrame.E某IT_ON_CLOSE);jf.etLocationRelativeTo(null);}}jf.etViible(true);②垂直放置p.etLayout(newBo某Layout(p,Bo某Layout.Y_A某IS));7.GridLayout布局管理器问题及实现importjava.awt.BorderLayout;importjava.awt.Container;importj ava.awt.GridLayout;importjava某.wing.JButton;importjava某.wing.JFrame;importjava某.wing.JPanel;publicclaGridLayout1{publictaticvoidmain(String[]arg){JFramejf=newJFrame(\网格布局管理器窗体\);Containerc=jf.getContentPane();JPanelp=newJPanel();p.etLayout(newGridLayout(2,5,20,20));p.add(newJButton(\));p. add(newJButton(\));p.add(newJButton(\));p.add(newJButton(\));p.add(newJButton(\));c.add(p,BorderLayout.CENTER);jf.etSize(300,300);}}jf.etDefaultCloeOperation(JFrame.E某IT_ON_CLOSE);jf.etLocationRelativeTo(null);jf.etViible(true);8.GridBagLayout布局管理器问题及实现importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.GridBagContraint;importjava.awt.GridBagLayout ;importjava.awt.GridLayout;importjava某.wing.JButton;importjava某.wing.JFrame;importjava某.wing.JPanel;publicclaGridBagLayout1{publictaticvoidmain(String[]arg){JFramejf=newJFrame(\网格包布局管理器窗体\);Containerc=jf.getContentPane();JPanelp=newJPanel();GridBagLayoutgr=newGridBagLayout();p.etLayout(gr);GridBagContraintgc=newGridBagContraint();gc.fill=GridBagCont raint.BOTH;gc.grid某=0;gc.gridy=0;gc.gridwidth=2;gc.gridheight=1;JButtonbt1=newJButton(\);gr.etContraint(bt1,gc);p.add(bt1,gc );gc.grid某=2;gc.gridy=0;gc.gridwidth=1;gc.gridheight=2;JButtonbt2=newJButton(\);gr.etContraint(bt2,gc);p.add(bt2,gc);gc.grid某=0;gc.gridy=1;gc.gridwidth=1;gc.gridheight=2;JButtonbt3=newJButton(\);gr.etContraint(bt3,gc);p.add(bt3,gc );gc.grid某=1;gc.gridy=1;gc.gridwidth=1;gc.gridheight=1;JButtonbt4=newJButton(\);gr.etContraint(bt4,gc);p.add(bt4,gc );gc.grid某=1;gc.gridy=2;gc.gridwidth=2;gc.gridheight=1;JButtonbt5=newJButton(\);gr.etContraint(bt5,gc);p.add(bt5,gc );c.add(p,BorderLayout.CENTER);jf.etSize(300,300);jf.etDefaultCloeOperation(JFrame.E某IT_ON_CLOSE);}}jf.etLocationRelativeTo(null);jf.etViible(true);五、实验总结。
java图形用户界面实验报告Java图形用户界面实验报告一、引言图形用户界面(Graphical User Interface,简称GUI)是现代软件开发中不可或缺的一部分。
通过GUI,用户能够直观地与程序进行交互,提高了软件的易用性和用户体验。
本实验旨在通过使用Java编程语言,实现一个简单的GUI应用程序,并介绍相关的技术和方法。
二、实验目标本实验的目标是设计并实现一个简单的GUI应用程序,要求具备以下功能:1. 显示一个窗口,并在窗口中心显示一个标签;2. 在窗口中添加一个按钮,并实现按钮的点击事件;3. 当按钮被点击时,标签的文本发生变化。
三、实验过程1. 环境准备在开始实验之前,需要确保已经安装了Java开发环境(JDK)和集成开发环境(IDE),例如Eclipse或IntelliJ IDEA。
2. 创建GUI应用程序首先,创建一个Java项目,并创建一个名为"GUIApplication"的类。
在该类中,引入Java的GUI库,并继承JFrame类,实现一个窗口。
3. 设计窗口布局在窗口的构造方法中,设置窗口的标题、大小和关闭方式。
然后,创建一个JPanel对象,并将其添加到窗口中。
在JPanel中,使用布局管理器(例如FlowLayout或GridBagLayout)来安排组件的位置和大小。
4. 添加标签和按钮在JPanel中,创建一个JLabel对象,并设置其文本和位置。
然后,创建一个JButton对象,并设置其文本和点击事件。
在点击事件中,通过修改JLabel的文本来实现标签内容的变化。
5. 运行程序完成以上步骤后,编译并运行程序。
将会显示一个窗口,其中包含一个标签和一个按钮。
当按钮被点击时,标签的文本会发生变化。
四、实验结果经过以上步骤,成功实现了一个简单的GUI应用程序。
运行程序后,窗口显示如下图所示:(插入程序运行截图)在窗口中心显示了一个标签,标签的文本为"Hello, GUI!"。
java图形用户界面 课程设计一、课程目标知识目标:1. 让学生理解Java图形用户界面(GUI)的基本概念和原理;2. 掌握使用Swing组件构建GUI应用程序的方法;3. 学会使用事件处理机制,实现用户与程序的交互;4. 了解布局管理器的作用,并能灵活运用。
技能目标:1. 培养学生运用Java Swing组件设计并实现简单GUI界面的能力;2. 培养学生运用事件监听器处理用户交互的能力;3. 提高学生运用布局管理器进行界面布局的能力;4. 培养学生运用调试工具解决GUI程序中的问题。
情感态度价值观目标:1. 培养学生对Java GUI编程的兴趣和热情;2. 培养学生养成良好的编程习惯,注重代码规范和可读性;3. 培养学生具备团队协作精神,善于沟通交流,共同解决问题。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握Java 图形用户界面编程的基本知识和技能。
学生特点:学生已具备一定的Java基础,了解面向对象编程思想,但对GUI 编程较为陌生。
教学要求:结合学生特点,注重理论与实践相结合,通过案例教学,引导学生动手实践,提高编程能力。
同时,关注学生情感态度的培养,激发学习兴趣,培养良好的编程习惯和团队协作精神。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. Java GUI基本概念与原理- 界面与组件的关系- Swing组件概述- 事件处理机制2. Swing组件的使用- 常用组件:按钮、文本框、文本域、标签、菜单等- 组件的属性设置与布局3. 事件处理- 事件监听器- 常用事件类型与处理方法4. 布局管理器- 流式布局管理器- 边界布局管理器- 网格布局管理器- 盒式布局管理器5. Java GUI程序调试与优化- 代码规范与可读性- 异常处理- 调试工具的使用6. 实践项目:制作一个简单的计算器- 界面设计- 事件处理- 程序调试与优化教学内容安排与进度:第一课时:Java GUI基本概念与原理,Swing组件概述第二课时:常用Swing组件的使用及属性设置第三课时:事件处理机制与事件监听器第四课时:布局管理器的使用第五课时:实践项目:制作一个简单的计算器(上)第六课时:实践项目:制作一个简单的计算器(下),程序调试与优化本教学内容与教材相关章节紧密关联,遵循由浅入深的顺序,确保学生能够系统地掌握Java图形用户界面编程的知识。
第7 章JAVA图形用户界面设计本章学习目标一、实验目的1.了解图形用户界面基本组件窗口、常用组件的使用方法。
2.了解图形用户界面各种布局策略的设计与使用,以及如何使用Java 的事件处理机制。
二、实验要求1. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
2. 掌握编写独立运行的窗口界面的方法。
3. 了解Java AWT组件的使用方法。
4. 了解Java Swing 组件的使用方法。
5. 了解对话框的使用方法。
6. 掌握在 Applet 容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。
三、实验内容(一)创建图形用户界面1. Applet 中网格布局的使用(1)程序功能:在 Applet 容器中添加组件标签、按钮,并使用网格布局管理器。
(2)编写 LX7_1.java 程序文件,源代码如下。
import java.awt.*;import java.applet.Applet;public class LX7_1extends Applet {Label l1,l2;Button b1, b2, b3, b4, b5, b6;public void init() {setLayout(new GridLayout(2,3)); //设置网格布局b1 = new Button("red");b2 = new Button("blue");b3 = new Button("black");b4 = new Button("cyan");l1 = new Label("label 1",Label.CENTER);l2 = new Label();add(l1);add(b1);add(b2);add(b3);add(l2);add(b4);b1.setBackground(Color.red);b2.setBackground(Color.blue);b3.setBackground(Color.black);b4.setBackground(Color.cyan);b3.setForeground(Color.white);}}(3)编译程序 LX7_1.java,运行结果图 7.1所示。
实验九Java图形用户界面设计(1)实验目的(1)掌握Frame与面板的使用( 2 )布局管理器的使用( 3)布局管理器的使用( 4)边界风格的使用(5 )掌握简单Java事件的处理二实验内容1、创建并显示一个标题为“My Frame ",背景色为白色,大小为1000 x 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个按钮程序:回 limport j ava. avt. *;匚 iiiport ] avax swing. *; I public class Grid{ JFrane f ;JEuttnn bl 上2上』上匚上Yb9:public static void in (String args [ ] H结果:3、编写一个java 程序,单击窗口的"关闭”按钮时退出程序, 使用BorderFactory 的静态方法创建边 界,运行效果如下图所示:1 1 1 11 111 1 12 2 2 2 2 2 2 o-3 3 3 3 3 Grxd. g-iiev GxidO, ■J JO() 白 public void qo( ){l=nev JF T 旳弐"闷桔帝局式岂瑶澤厂:Contain&T eon«! g&tCnnt&ntPani»(); aon .(nsw GridLayout (SL 3)》; JDiitton(" fe®2B J; JButtonC JButton("feg$4"): JButtonf -feWS");JEiittm ("按從6");JBllttD 冰嗓睡?叮; _____ J BiittonC'te^e"):h9-nev JFut 上onf "特惚齐): eon add (bl ) ; eon. add(b2 ) ; con add( b3) conCOB .add(b^): con .add(b8); con B add(b7);f.pock () £.sc t Size (3DO .300); L . tsislV 丄呂丄上丄巴(true) xbl-nefw b2-new bS-uew b4s new L5=newb6=n 刖 b7=new bS=new add(h4); con ” add (b8 ) ; con , sddl [ b9 ;□ fimpsx t jova. avt . «;import qavaz s^ing.*; imooz? t jsv ing … bordex?. * 丄川yur t jciVdi. leLug . Obj t?ul,Fl public eli®e herder{ J Button bl 4: El public EtsitLc void naln (String eirgs[])< boi dcr border (); b.go(): E pi.ibl ic gi d ge ( ) ■[ JFan©l p^new JPaaelf )H J Fxane £ -nctf JE XOJTLC ( * JPantel DteJira Coctaiaer con ■ i .getContent?ane(); Sordex b~ BorderFas t OTy ・ eroa t eEt ^hodBordBr []; Border tor der =EarderFactOT 7 exeateT i t ledBcnier (b … r, Ify Eorderf act orv'); p . setDardez (boz^dei-); Ll-nctr J □祇 ton J 推僞:T). h”rww JButton(d fc^2") p .cdd(bl ); p .odd(b2};匚口口 s add [ D ): f .E etgize(SlOO. 300): f.&tlVisible(true),30 313 2 结果:4、构造一个Frame 窗口,单击窗口的"关闭”按钮时退出程序(参考 JFrame 的 setDefaultCloseOperation 方法);Frame 中包含一个"Presss Me ”按钮,单击该按钮,在控制台显示单击次数:“你已经单击按钮X 次! ”。
Java图形用户界面设计实验总结1. 简介本文档是关于Java图形用户界面(GUI)设计实验的总结。
我们将对Java GUI 的基本概念和原理进行介绍,并提供一些实验总结和经验分享。
Java GUI是一种用于创建用户友好界面的技术,在开发各种应用程序时非常重要。
2. Java GUI的基本概念和原理2.1 Java GUI库Java提供了一些库来帮助开发人员创建GUI应用程序。
其中最常用的库是Java Swing和JavaFX。
Swing提供了一组类和方法,用于创建和管理各种GUI组件,例如按钮、文本框、标签等。
JavaFX是一个更现代化的GUI库,提供了更好的图形渲染和动画效果。
2.2 GUI组件Java GUI应用程序通常由一系列GUI组件组成。
最常见的GUI组件包括:•按钮(Button):用于触发各种操作;•标签(Label):用于展示文本信息;•文本框(TextField):用于输入文本;•列表框(ListBox):用于显示一个选项列表;•组合框(ComboBox):同时兼具列表框和文本框的功能;•复选框(CheckBox):用于选择一个或多个选项;•单选按钮(RadioButton):用于从一组选项中选择一个。
2.3 事件处理Java GUI应用程序通常需要对用户的操作做出响应。
为此,需要使用事件处理机制。
事件处理机制通常由两个主要部分组成:事件源和事件监听器。
事件源可以是任何GUI组件,例如按钮、文本框等。
事件监听器是一个类,用于响应和处理特定事件。
3. 实验总结和经验分享在完成Java GUI设计实验时,我得出了以下总结和经验分享:•熟悉GUI组件的使用:在开始实验之前,我花了一些时间学习和理解不同GUI组件的使用方法。
这让我能够更好地选择和使用适当的组件来实现我的GUI应用程序。
•构建用户友好的界面:一个好的GUI应用程序应该是用户友好的。
在实验中,我学会了如何通过合理的布局、适当的颜色和字体选择来创建一个用户友好的界面。
广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室2014年11月14日一、实验目的实验十图形用户界面(1)1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,·2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
实验十一图形用户界面(2)1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
二、实验器材MacBook Pro一台操作系统:OS X Yosemite\编程软件:eclipse三、实验要求实验十图形用户界面(1)1. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
2. 掌握编写独立运行的窗口界面的方法。
3. 了解Java Swing 组件的使用方法。
4. 了解对话框的使用方法。
实验十一图形用户界面(2)¥1. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
2. 掌握编写独立运行的窗口界面的方法。
3. 了解Java Swing 组件的使用方法。
4. 了解对话框的使用方法。
四、实验过程原始数据记录实验十图形用户界面(1)…1. 如下图所示,用了三个文本框,第一个文本框给用户输入商品单价,第二个则是给用户输入商品数量,第三个用于显示总金额。
代码:import class test_2_1_1 extends JFrame implementsActionListener{public static void main(String[] args) {ddDocumentListener(new DocumentListener() {"@Overridepublic void removeUpdate(DocumentEvent e) {ddDocumentListener(new DocumentListener() {@Overridepublic void removeUpdate(DocumentEvent e){quals("计算")){?if (!canCal){showMessage("输入的数据不合法");return;}double sum = ()) *());(sum));#}}制作如下图所示的界面,当用户点击单选按钮时,会在一个标签上显示出当前所选定的数据库服务器类型。
南京工程学院实验报告课程名称 JAVA基础实验项目名称图形用户界面设计实验学生班级实验学生姓名学号同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日一、实验目的和要求1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。
2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。
3.熟悉在组件上绘图的方法。
二、实验题目用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。
三、实验方法与步骤(需求分析、算法设计思路、流程图等)算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:因此,我设计了以下核心算法public void actionPerformed(ActionEvent e){if(e.getSource()==button_b){doublewage=Double.parseDouble((String)text_wage.getText());double tax = 0;if(wage<=3500)tax=0;if(wage>3500&&wage<=5000)tax=(wage-3500)*0.03;if(wage>5000&&wage<=8000)tax=(wage-3500)*0.1-105;if(wage>8000&&wage<=12500)tax=(wage-3500)*0.2-555;if(wage>12500&&wage<=38500)tax=(wage-3500)*0.25-1005;if(wage>38500&&wage<=58500)tax=(wage-3500)*0.3-2755;if(wage>58500&&wage<=83500)tax=(wage-3500)*0.35-5505;if(wage>83500)tax=(wage-3500)*0.45-13505;text.setText(""+tax);}}以上算法是根据税率表设计的,具体为:我国规定个人收入在3500元起征个人所得税,分了多个阶段:3500以下:不收税3500以上到5000以下部分:3%5000以上到8000以下部分:10%8000以上到以下部分:20%125000以上到385000以下部分:25%385000以上到585000以下部分:30%585000以上到835000以下部分:35%83500以上:45%首先算出每个阶段的速扣数,然后用此公式:应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数。
实验名称:基于Java的图形用户界面设计一、实验目的1. 熟悉Java图形用户界面设计的基本概念和常用组件。
2. 掌握Swing库的使用,能够设计简单的图形用户界面。
3. 培养编程实践能力,提高问题解决能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE for Java Developers3. 编程语言:Java4. 开发库:Swing库三、实验内容1. 创建一个简单的图形用户界面,包括窗口、按钮、标签、文本框等组件。
2. 实现按钮点击事件,输出信息到控制台。
3. 设计一个带有滚动条的面板,展示大量数据。
4. 使用布局管理器(如FlowLayout、BorderLayout、GridLayout等)对界面进行布局。
四、实验步骤1. 创建一个名为“GUIProject”的Java项目,在Eclipse中导入Swing库。
2. 创建一个名为“MainFrame”的类,继承自JFrame类,作为主窗口。
3. 在“MainFrame”类中,添加以下代码:```javaimport javax.swing.;import java.awt.;public class MainFrame extends JFrame {public MainFrame() {// 设置窗口标题setTitle("图形用户界面设计");// 设置窗口大小setSize(500, 400);// 设置关闭操作setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置布局管理器setLayout(new BorderLayout());// 创建按钮JButton button = new JButton("点击我");// 添加按钮到窗口add(button, BorderLayout.CENTER);// 添加事件监听器button.addActionListener(e -> {System.out.println("按钮被点击了!");});}public static void main(String[] args) {// 创建窗口实例MainFrame frame = new MainFrame();// 显示窗口frame.setVisible(true);}}```4. 修改“MainFrame”类,添加滚动条和标签:```javaimport javax.swing.;import java.awt.;public class MainFrame extends JFrame {public MainFrame() {// ...(省略其他代码)// 创建面板JPanel panel = new JPanel();// 设置布局管理器panel.setLayout(new GridLayout(0, 1));// 创建标签JLabel label = new JLabel("这是一个标签");// 添加标签到面板panel.add(label);// 创建滚动条JScrollPane scrollPane = new JScrollPane(panel); // 添加滚动条到窗口add(scrollPane, BorderLayout.CENTER);}// ...(省略其他代码)}```5. 运行程序,观察效果。
实验9 图形用户界面设计及简单事件处理(一)一、实验目的:
掌握Java图形组件及容器的使用;
掌握图形界面的各种控件的使用,如:标签、菜单、文本框、按钮、复选框、列表框、窗框等。
(本实验以按钮、菜单、标签和文本框为例)
二、实验内容:
1.编写Application程序:TestOne.java
在Frame中加入2个按钮(Button)和1个标签(Label),单击两个按钮,显示按钮的标签于Label。
2. 编写Application程序:TestTwo.java
在Frame中加入下列菜单:文件、编辑。
要求:
(1)“文件”中包含:新建、打开和退出。
“新建”中包含:JAVA文档、HTML 文档。
(2)“编辑”中包含:粘贴、查找、全选。
(3)点击菜单项“退出”,可退出程序。
(4)“打开”和“退出”之间有分割线。
作业:
设计一个简单计算器(主类名:Calculator.java),如下图所示(采用BoxLayout布局,具体使用参见P157 例题7.16)。
在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中,窗体的大小不能改变。
(Frame类中的setResizable()设置此窗体是否可由用户调整大小。
)
三、实验要求:
1.参考教材中的例题对界面进行设计;
2. 学会对简单事件进行处理;
3.写出实验报告。
四、实验步骤:
1.界面设计;
2. 事件处理;
3. 编译运行程序,检查正确性;。
辽宁工程技术大学上机实验报告实验内容:(1)设计一个简易计算器,在“操作数”标签右侧的两个文本框输入操作数,当单击“+,-,*,/”按钮时,对两个操作数进行运算并将结果填到“结果”标签右侧的文本框中。
具体程序如下:import java.awt.event.*;import javax.swing.*;class Compute extends JFrame{public Compute(){final String a,b;JFrame Compute = new JFrame("简单计算器");JLabel lb1 = new JLabel("操作数:");JLabel lb2 = new JLabel("操作数:");JLabel lb3 = new JLabel("结果:");final JTextField txt1 = new JTextField();a=txt1.getText();final JTextField txt2 = new JTextField();b=txt2.getText();final JTextField txt3 = new JTextField();JButton jb1 = new JButton("+");JButton jb2 = new JButton("-");JButton jb3 = new JButton("*");JButton jb4 = new JButton("/");JButton jb5 = new JButton("清除");Compute.setBounds(100,100,480,215);Compute.setVisible(true);Compute.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Compute.setLayout(null);Compute.add(lb1);Compute.add(lb2);Compute.add(lb3);Compute.add(txt1);Compute.add(txt2);Compute.add(txt3);Compute.add(jb1);Compute.add(jb2);Compute.add(jb3);Compute.add(jb4);Compute.add(jb5);lb1.setBounds(50,40,100,20);lb2.setBounds(50,80,100,20);lb3.setBounds(50,120,100,20);txt1.setBounds(100,40,150,20);txt2.setBounds(100,80,150,20);txt3.setBounds(100,120,150,20);jb1.setBounds(300,30,50,20);jb2.setBounds(300,60,50,20);jb3.setBounds(300,90,50,20);jb4.setBounds(300,120,50,20);jb5.setBounds(375,70,70,30);jb1.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e) {double x=Double.valueOf(txt1.getText());double y=Double.valueOf(txt2.getText());txt3.setText(Double.toString(x+y));}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {} });jb2.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e) {Double x=Double.valueOf(txt1.getText());Double y=Double.valueOf(txt2.getText());txt3.setText(Double.toString(x-y));}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}});jb3.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e) {Double x=Double.valueOf(txt1.getText());Double y=Double.valueOf(txt2.getText());txt3.setText(Double.toString(x*y));}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}});jb4.addMouseListener(new MouseListener(){public void mouseClicked(MouseEvent e) {Double x=Double.valueOf(txt1.getText());Double y=Double.valueOf(txt2.getText());txt3.setText(Double.toString(x/y));}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}});jb5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0){txt1.setText("");txt2.setText("");txt3.setText("");txt1.requestFocus();}});}public static void main(String args[]){Compute cp=new Compute();}}运行结果如下:如图所示3.2*4.6=7.8如图所示22.4/6.2=3.612903225806451(2)编写文本移动程序,窗口中有两个文本区和两个按钮,文本区分别位于窗口的左边和右边区域,2个按钮位于窗口的中间区域,当单击“→”按钮时,将左边文本区选中的内容添加到右侧的文本区的末尾。
实验名称:图形用户界面设计一、实验目的1.掌握常用图形界面组件(按钮、文本框等)对象的创建及其常用方法的使用。
如,按钮的常用方法是getLabel(),文本框的常用方法有setText(),getText()等。
2.掌握常用的布局管理类CardLayou,BorderLayout,FlowLayout,GridLayout的使用策略。
能够将它们联合起来使用。
3.掌握java语言的事件处理。
每个事件对应的接口(或适配器类)是什么,每个接口有哪些方法,如何进行委托处理,被委托者必须做什么。
二、实验环境(软件、硬件环境)PC机JDK包三、实验原理通过图形用户界面(GUI),用户和程序之间可以方便地进行交互。
javax.swing包中的组件类可以帮助我们完整界面的设计。
javax.swing包的JComponent类是java.awt包中的Container 类的一个直接子类、Component类的间接子类。
javax.swing包中的JFrame类和JDialog类分别是java.awt包中Frame类和Dialog类的直接子类、Window类的间接子类。
在学习GUI编程时,必须很好地理解并掌握两个概念:容器类和组件类,必须很好地掌握java的事件处理机制。
四、实验容及步骤实验容:密码验证问题。
编写一个Java程序,实现用户根据自己的密码进入界面,如果用户输入信息正确,则输出“欢迎XXX用户”,否则用户还可以尝试两次,如果尝试阶段输入信息错误,则输出“请输入正确的信息”,如果尝试失败,用户则退出。
调试并编译程序PasswordVerification.java,运行该程序,运行结果如图8-1、图8-2、图8-3和图8-4所示,请将程序中的代码1~代码7补充完整。
图8-1 运行结果,输入正确信息图8-2 显示欢迎信息图8-3 运行结果,输入错误信息图8-4 显示重新输入信息程序清单://PasswordVerification.javaimport javax.swing.*;import java.awt.event.*;import java.awt.*;public class PasswordV erification extends JFrame{JLabel userLabel;JLabel passwordLabel;JTextField userText;JPasswordField passwordText;int count=1;//统计输入信息的次数public PasswordVerification(){super("请输入信息");Container c =代码1;//得到容器对象containerc.setLayout(new FlowLayout());//设置默认布局userLabel=代码2//创建用户标签passwordLabel=代码3;//创建密码标签userText=代码4//创建用户文本输入框passwordText=代码5//创建密码输入文本框passwordText. 代码6(new ActionListener(){ //注册事件监听者public void actionPerformed(代码7)//事件处理{String userName=new String("三");//假设为正确的用户名String password=new String("12345678");//假设为正确的密码if(e.getSource()==passwordText){count++;char[] passwords=passwordText.getPassword();if(userText.getText().equals(userName)&&password.equals(new String(passwords))){JOptionPane.showMessageDialog(null,"欢迎您:"+userName);System.exit(0);}else if(count>3)System.exit(0);else {JOptionPane.showMessageDialog(null,userText.getText()+"请输入正确信息");}}}});c.add(userLabel);c.add(userText);c.add(passwordLabel);c.add(passwordText);setSize(240,100);setVisible(true);}public static void main(String[] args){PasswordVerification pv=new PasswordV erification();pv.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}五、实验数据及处理import javax.swing.*;import java.awt.event.*;import java.awt.*;public class PasswordVerification extends JFrame{JLabel userLabel;JLabel passwordLabel;JTextField userText;JPasswordField passwordText;int count=1;//统计输入信息的次数public PasswordVerification(){super("请输入信息");Container c =getContentPane();//得到容器对象containerc.setLayout(new FlowLayout());//设置默认布局userLabel=new JLabel("用户:");//创建用户标签passwordLabel=new JLabel("密码:");//创建密码标签userText=new JTextField(5);//创建用户文本输入框passwordText=new JPasswordField(5);//创建密码输入文本框 passwordText.addActionListener(new ActionListener() { //注册事件监听者public void actionPerformed( ActionEvent e) //事件处理{String userName=new String("三");//假设为正确的用户名String password=new String("12345678");//假设为正确的密码 if(e.getSource()==passwordText){count++;char[] passwords=passwordText.getPassword();if(userText.getText().equals(userName)&&password.equals(new String(passwords))){JOptionPane.showMessageDialog(null,"欢迎您:"+userName);System.exit(0);}else if(count>3)System.exit(0);else {JOptionPane.showMessageDialog(null,userText.getText()+"请输入正确信息");}}}});c.add(userLabel);c.add(userText);c.add(passwordLabel);c.add(passwordText);setSize(240,100);setVisible(true);}public static void main(String[] args){PasswordVerification pv=new PasswordVerification();pv.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}运行结果:思考:(1)程序PasswordVerification.java中第3行语句java.awt.*的作用是什么?答:添加容器类。
图形用户界面设计实验1Nested PanelsThe program Nested Panels.java is from Listing 3.8 of the text. Save the program to your directory and do the following:pile and run the program. Experiment with resizing the frame and observe the effect on the components.运行程序后出现如下界面:改变窗口的大小,观察到:〔见下列图〕〔1〕两个子面板one和two的尺寸都保持不变。
〔2〕蓝色的主面板随着窗口的变大而扩展。
〔3〕蓝色面板变长,one和two子面板都不变,当蓝色面板变宽时,两个子面板随着它移动,并保持居中状态。
〔4〕缩小窗口,根据流式布局的形式,two子面板因为位置容不下,自动被放在下一行的位置。
2. Modify the program by adding a third subpanel that is twice as wide, butthe same height, as the other two subpanels. Choose your own label and color for the subpanel (the color should not be red, green, or blue). Add the panel to the primary panel after the other two panels.修改的代码如下:JPanel subPanel3 = new JPanel() ;subPanel3.setPreferredSize (new Dimension(300, 100)); ubPanel3.setBackground (Color.red);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);primary.add (subPanel3);3. Compile and run the modified program. Again, experiment with resizing the frame and observe the effect on the components.改变窗口的大小,3个子面板变化情况跟第一步实验的类似。
实验九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次!”。
程序:
结果:
三实验总结。