JAVA-SWING图形界面程序设计实验报告(附完整代码)
- 格式:doc
- 大小:74.00 KB
- 文档页数:4
图形界面(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图形用户界面实验报告
《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实验报告第十八章图形界面JAVA实验报告实验单元八【实验目的】1、了解AWT与Swing的关系。
2、掌握组件、容器、布局管理器的概念。
3、了解JLable组件及JButton组件,并可以通过设置显示文字风格及显示图像。
4、了解事件处理作用及实现机制。
5、了解文本框组件、密码框组件、文本域组件的使用。
6、了解单选按钮、复选框、列表框、下拉列表框等常见组件的使用及事件处理。
7、了解菜单组件及文件选择组件的使用。
8、了解表格的建立,并可以使用TableModel构建一个表格。
【实验环境】安装了JDK软件的PC机。
【实验内容】第十八章的例题和习题。
第一题(P698例18.1)【程序功能内容说明】创建一个新的窗体【实验程序原码】import javax.swing.JFrame ;import java.awt.Color ;public class JFrameDemo01{public static void main(String args[]){JFrame f = new JFrame("第一个Swing窗体") ;f.setSize(230,80) ; // 设置组件的大小f.setBackground(Color.WHITE) ; // 将背景设置成白色f.setLocation(300,200) ; // 设置组件的显示位置f.setVisible(true) ; // 让组件可见}};【实验结果】【该程序关键技术说明】以上程序运行之后,会直接显示出一个窗体,可以发现此窗体的标题就是在实例化JFrame是设置的标题,底色为白色,通过setSize()方法设置了其显示的大小。
第二题(P701 例18.3)【程序功能内容说明】使用一个标签【实验程序原码】import java.awt.Dimension ;import java.awt.Color ;import java.awt.Point ;import javax.swing.JLabel ;import javax.swing.JFrame ;public class JLabelDemo01{public static void main(String args[]){JFrame frame = new JFrame("Welcome To MLDN") ;JLabel lab = new JLabel("MLDN",JLabel.CENTER) ; // 实例化标签对象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) ;}};【实验结果】【该程序关键技术说明】以上程序中,实例化了一个Jlabel对象,并指定内容以及对齐方式,之后将此组件加入到了容器中,并进行显示。
《Java程序设计-实验报告》
计算机科学系级班
课程名:《Java程序设计》
姓名:
学号:
指导教师:
实验项目:“Java GUI程序设计”
实验目的:
1、熟悉和掌握java Swing的基本GUI程序设计,掌握如何构建一个窗口程序,并且窗口中添加常用的Swing组件,使用各种布局管理器来完成对窗口中的组件进行布局。
2、了解Java事件处理机制,掌握基本的事件处理机制的基本程序编写。
实验要求:
使用java语言完成相关程序设计要求,编写代码、调试、运行,将编写的程序写在题目要求后面,对结果进行分析、得出编程的结论和心得。
实验内容:(两个题目,二选一)
1、试着用Swing类库完成以下程序界面(自行截图,尽量与下面界面接近):
2、试着用Swing类库完成以下程序界面(自行截图,尽量与下面界面接近):
提交要求:独立完成以上各个程序,查询相关资料和文档完成以上程序设计,将最后做完的界面截图,摘抄部分关键程序语句,写出碰到的问题,如何接近,心得总结等,17周之内提交打印文档。
java图形实验报告篇一:java实验报告实验六Java图形用户界面信息工程学院Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1.实验目的(1)掌握图形用户界面基本组件。
(2)了解如何使用布局管理器对组件进行管理。
(3)掌握Java事件处理机制。
2.实验内容实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。
运行结果:实验报告的内容与格式按任课教师的要求书写。
加法:主要代码:private void initComponents() {setStub(null); jButton1 = new ; jButton2 = new ; jButton3 = new ; jButton4 = new ; jButton5 = new ;jButton6 = new ; jButton7 = new ; jButton8 = new ; jButton9 = new ; jButton10 = new ; jButton11 = new ; jButton12 = new ; jButton13 = new ; jButton14 = new ; jButton15 = new ; jTextField1 = new ;jButton1.setText("3"); jButton1.addActionListener(new {public voidactionPerformed( evt) {jButton2.setText("1"); jButton2.addActionListener(new}); } jButton1ActionPerformed(evt); {public voidactionPerformed( evt) {jButton3.setText("5"); jButton3.addActionListener(new}); } jButton2ActionPerformed(evt); {public voidactionPerformed( evt) {jButton4.setText("2"); jButton4.addActionListener(new}); } jButton3ActionPerformed(evt); {public voidactionPerformed( evt) {jButton5.setText("6");}); } jButton4ActionPerformed(evt);jButton5.addActionListener(new {public voidactionPerformed( evt) {jButton6.setText("8"); jButton6.addActionListener(new}); } jButton5ActionPerformed(evt); {public voidactionPerformed( evt) {jButton7.setText("4"); jButton7.addActionListener(new}); } jButton6ActionPerformed(evt); {public voidactionPerformed( evt) {jButton8.setText("7"); jButton8.addActionListener(new}); } jButton7ActionPerformed(evt); {public voidactionPerformed( evt) {jButton9.setText("0");jButton9.addActionListener(new}); } jButton8ActionPerformed(evt); {public voidactionPerformed( evt) {jButton10.setText("9"); jButton10.addActionListener(new}); } jButton9ActionPerformed(evt); {public voidactionPerformed( evt) {jButton11.setText("\u00f7"); jButton11.addActionListener(new}); } jButton10ActionPerformed(evt); {public voidactionPerformed( evt) {jButton12.setText("\u00d7"); jButton12.addActionListener(new}); } jButton11ActionPerformed(evt); {public voidactionPerformed( evt) {jButton13.setText("-"); jButton13.addActionListener(new}); } jButton12ActionPerformed(evt); {public voidactionPerformed( evt) {篇二:JAVA实验报告附件2:实验报告封皮20 —学年第学期课程实验报告学院:计算机科学技术专业:软件工程班级:姓名:学号:任课教师:王薇实验日期:XX年 11 月 02 日-1--2-实验日期:XX年 11 月 06 日-3--4-篇三:java图形用户界面实验报告南京工程学院实验报告课程名称 JAVA基础实验项目名称图形用户界面设计实验学生班级实验学生姓名学号同组学生姓名无实验时间 XX年11月实验地点实验成绩评定指导教师签字年月日一、实验目的和要求1.目的:掌握java AWT及Swing组件的使用方法,包括窗口、框架、对话框、布局方式、面板、文本编辑器、按钮、组合框等,合理利用委托事件处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的java图形用户界面。
2011年下学期实验名称:基于awt图形界面程序设计方法时间: 2011/12/9 地点:8-209一、实验设备:一台计算机。
二、实验目的:1. 掌握基于awt图形界面程序设计方法2. 掌握容器组件和基本组件的应用实验内容及方法:1. 设计一个基于awt的图形界面应用程序实现算术运算。
实验过程:1.实验步骤1. 设计一个基于awt的图形界面应用程序实现算术运算①界面中有三个文本框,分别表示两个运算数和运算结果;②另外界面中有四个按钮,分别表示“加”“减”“乘”“除”;③程序中需要添加四个按钮监听器,且处理不同的运算;⑤运行程序;2.源程序:import java.awt.*;import java.applet.*;import java.awt.event.*;public class Calculator extends Applet{ TextField tfAnswer,tf1,tf2;Button bPlus,bMinus,bMulti,bDivision;public void init() {Panel panel1=new Panel();Panel panel2=new Panel();tf1=new TextField(8);tf2=new TextField(8);tfAnswer=new TextField(8);setBackground(Color.lightGray);setForeground(Color.blue); bDivision = new Button("/");bDivision.setForeground(Color.red); bMulti = new Button("*");bMulti.setForeground(Color.red);bMinus = new Button("-");bMinus.setForeground(Color.red);bPlus = new Button("+");bPlus.setForeground(Color.red);setLayout(new FlowLayout());panel1.setLayout(new FlowLayout());panel2.setLayout(new GridLayout(1,4));panel1.add(tf1);panel1.add(tf2);panel1.add(tfAnswer);panel2.add(bPlus);panel2.add(bMinus);panel2.add(bMulti);panel2.add(bDivision);add(panel1);add(panel2);bDivision.addActionListener(new ButtonAct()); bMulti.addActionListener(new ButtonAct());bMinus.addActionListener(new ButtonAct());bPlus.addActionListener(new ButtonAct());}class ButtonAct implements ActionListener{ p ublic void actionPerformed(ActionEvent e){ double a,b,c=1;a=Double.parseDouble(tf1.getText());b=Double.parseDouble(tf2.getText());if(e.getSource()==bPlus)c=a+b;else if(e.getSource()==bMinus)c=a-b;else if(e.getSource()==bMulti)c=a*b;else if(e.getSource()==bDivision)c=a/b;tfAnswer.setText(Double.toString(c));}}}4.运行截图:。
实验3 图形用户界面编程(设计性实验)一、实验目的1、熟悉Swing的基本组件,包括文本输入框、多行文本输入框、按钮、列表框等;2、熟悉常用的布局管理器3、了解GUI图像用户界面的设计方法4、掌握Java组件的事件处理机制5、熟悉基于内部类和匿名类的事件处理方式二、实验要求1、学生应做到独立上机操作2、编程前应将程序的设计构想完成,主要包括所要创建的类的结构及属性和行为。
3、上机输入和调试自己所编的程序,并存在自己的软盘上。
4、检查实验结果是否正确。
5、上机结束后,写出实验报告,要求附运行界面、源代码。
实验报告中应对实验结果进行分析,尤其是针对错误输出的分析。
三、实验内容1. 选做:编写程序,显示一个窗口,窗口中包含一个按钮。
当单击按钮时将弹出另一个窗口。
2. 编写一个简单的计算器程序,实现两个数相加。
在文本框输入两个实数,点击“相加”按钮实现两个实数相加,并在标签中显示相加结果。
点击“清除”完成对文本框和运行结果的清除。
四、实验代码及结果1、import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TestFrame{public static void main(String args[]){JFrame f=new JFrame("Test");f.setSize(400,200);f.setLayout(new FlowLayout(FlowLayout.CENTER));f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton b=new JButton("确定");b.addActionListener(new ButtonHandler());f.add(b);f.setVisible(true);}}class ButtonHandler implements ActionListener{public void actionPerformed(ActionEvent e){JFrame fr=new JFrame("Hello");fr.setSize(200,100);fr.setVisible(true);}}import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TestCalculator implements ActionListener{JFrame f;JTextField t1;JTextField t2;JTextField t3;JButton b1;JButton b2;public TestCalculator(){f=new JFrame("Calculate");f.setSize(400,200);f.setLayout(new GridLayout(2,3));f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);t1=new JTextField();t2=new JTextField();t3=new JTextField();b1=new JButton("add");b2=new JButton("clear");b1.addActionListener(this);b2.addActionListener(this);f.add(t1);f.add(t2);f.add(t3);f.add(b1);f.add(b2);f.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==b1){String s1=t1.getText();String s2=t2.getText();int a=Integer.valueOf(s1).intValue();int b=Integer.valueOf(s2).intValue();int c=a+b;t3.setText(Integer.toString(c));}else{t1.setText(" ");t2.setText(" ");t3.setText(" ");}}public static void main(String args[]){ TestCalculator test=new TestCalculator(); }}。
画板程序一、软件系统分析和设计方案1、功能需求分析设计类似于Windows画板的程序,程序可以通过功能菜单(或工具条)进行功能选择操作,在画板中可以用鼠标操作绘制不同颜色的点,直线,多边形和椭圆,可以保存和打开自定义的图形文件。
2、结构设计过程经过对需求的分析,我们设计的画图板界面主要包括菜单栏、工具栏、画板三个部分。
菜单栏包含文件、编辑、帮助等常见功能菜单,实现打开保存文件等功能;工具栏主要包括画笔、矩形、椭圆、直线、刷子、橡皮、文字、颜色等工具,可完成一些基本操作;画板能够编辑处理图片及文字。
而代码实现上采用面向对象的思想,将上述组件封装与一个画板类中布局并实现功能;通过一个窗框类实现画板对象;最后在主类中建立窗框对象。
思路如下图:二、软件实现和代码编写具体代码及详细注释如下:import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import javax.swing.*;import javax.swing.UIManager.*;import java.io.*;import java.util.Vector;//主类建立窗框public class DrawPad {public static void main(String[] args) {try {// 优化UI效果for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) {UIManager.setLookAndFeel(info.getClassName());break;}}} catch (Exception e) {System.out.println(e);}new DrawFrame();}}// 添加窗口和画板组件class DrawFrame extends JFrame {public DrawFrame() {DrawPanel panel = new DrawPanel();add(panel);setTitle("简单JAVA画板");setBounds(100, 100, 800, 600);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}// 定义绘画点的基本属性class position implements Serializable {int x;int y;int type;String s;Color color;}// 定义画板组件class DrawPanel extends JPanel implements ActionListener, MouseListener, MouseMotionListener {JMenuBar mb;// 菜单栏JMenu menu1, menu2, menu3;JMenuItem i1, i2, i3, i4;JPanel jp1; // 工具栏public JButton anj0, anj1, anj2, anj3, anj4, anj5, anj6, anj7, anj8, anj9,anj10;JLabel l1, lcolor;Vector<position> thedraw = new Vector<position>(); // 保存画图轨迹的数组int style = 0; // 保存画图类型,默认为画笔int x1 = 0;// 保存点的坐标int x2 = 0;int y1 = 0;int y2 = 0;String input = "";// 默认输入文字内容Color linecolor = Color.BLACK; // 默认线的颜色public DrawPanel() {setBackground(Color.WHITE);setLayout(new BorderLayout());setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));// 上部菜单栏mb = new JMenuBar();mb.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));add(mb, BorderLayout.NORTH);// 加入菜单栏的组件menu1 = new JMenu(" 文件");menu2 = new JMenu(" 编辑");menu3 = new JMenu(" 帮助");i1 = new JMenuItem("打开", new ImageIcon("img/open.png"));i2 = new JMenuItem("保存", new ImageIcon("img/save.png"));i3 = new JMenuItem("清空", new ImageIcon("img/clear.png"));i4 = new JMenuItem("关于简单JAVA画板", new ImageIcon( "img/about.png"));menu1.add(i1);menu1.addSeparator();menu1.add(i2);menu2.add(i3);menu3.add(i4);mb.add(menu1);mb.add(menu2);mb.add(menu3);add(mb, BorderLayout.NORTH);// 侧边工具栏jp1 = new JPanel();jp1.setBackground(Color.LIGHT_GRAY);jp1.setLayout(new BoxLayout(jp1, BoxLayout.Y_AXIS));jp1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));add(jp1, BorderLayout.WEST);// 加入工具栏的组件anj0 = new JButton("画笔", new ImageIcon("img/pen.png"));anj1 = new JButton("刷子", new ImageIcon("img/brush.png"));anj2 = new JButton("橡皮", new ImageIcon("img/erease.png"));anj3 = new JButton("文字", new ImageIcon("img/word.png"));anj4 = new JButton("直线", new ImageIcon("img/sline.png"));anj5 = new JButton("矩形", new ImageIcon("img/rec.png"));anj6 = new JButton("圆矩", new ImageIcon("img/frec.png"));anj7 = new JButton("椭圆", new ImageIcon("img/eli.png"));anj10 = new JButton("");lcolor = new JLabel("■");// 会变色的方块l1 = new JLabel(" 颜色");anj10.add(lcolor);anj10.add(l1);jp1.add(anj0);jp1.add(anj1);jp1.add(anj2);jp1.add(anj3);jp1.add(anj4);jp1.add(anj5);jp1.add(anj6);jp1.add(anj7);jp1.add(anj10);// 事件处理i1.addActionListener(this);i2.addActionListener(this);i3.addActionListener(this);i4.addActionListener(this);anj0.addActionListener(this);anj1.addActionListener(this);anj2.addActionListener(this);anj3.addActionListener(this);anj4.addActionListener(this);anj5.addActionListener(this);anj6.addActionListener(this);anj7.addActionListener(this);anj10.addActionListener(this);addMouseListener(this);addMouseMotionListener(this);}// 记录鼠标选择的功能public void actionPerformed(ActionEvent e) {if (e.getSource() == anj0)style = 0;else if (e.getSource() == anj1)style = 1;else if (e.getSource() == anj2)style = 2;else if (e.getSource() == anj3) {style = 3;input = JOptionPane.showInputDialog("输入文字后在画板上点击放置");} else if (e.getSource() == anj4)style = 4;else if (e.getSource() == anj5)style = 5;else if (e.getSource() == anj6)style = 6;else if (e.getSource() == anj7)style = 7;else if (e.getSource() == anj10) {linecolor = JColorChooser.showDialog(null, "请选择颜色", Color.BLACK);lcolor.setForeground(linecolor);} else if (e.getActionCommand().equals("关于简单JAVA画板")) {JOptionPane.showMessageDialog(null,"这是一个简单的JAVA画板。
实验名称Swing图形界面编程
实验目的
1、Swing图形界面布局方式
2、Swing图形界面事件处理
一、实验题目
1、使用复杂布局完成如下程序界面:
2、在第1题的基础上,实现按钮的交互处理。
二、实验内容及结果(请将相应题目主要代码和结果截图写在相应题目下方) 1、
Java程序设计实验报告
2、
三、实验总结
本次试验写一个猜字游戏的程序,其中内容是涉及到的是Swing容器的界面设计,做实验时先要建立四个文件分别装GuessBorderLayout(边界的布局),GuessFlowLayout,
GuessGridLayout,GuessNumber,其中GuessNumber为主文件,然后直接在GuessNumber 里调用其他三个函数。
关于猜字游戏先顶一个框架,再在框架里定义两个面板,可以在面板里添加颜色,将里面的内容按不同方向摆放,起初是用的是一般的布局,发现中间的没有内容,则需要用网状的布局,这样就可以避免中间的是空白的无任何内容。
2012—2013学年第 1 学期合肥学院数理系实验报告课程名称:《面向对象程序设计》实验项目:图形用户界面实验类别:综合性□设计性√验证性□专业班级:10信息与计算科学班姓名:学号:实验地点:校内机房实验时间:2012.11.19 —2012.11.25指导教师:钱泽强成绩:一、实验目的掌握Java中图形界面设计的基本元素和方法,熟练使用常用组件设计图形界面,掌握布局管理器的使用,掌握事件的处理方法。
二、实验内容1、设计图形界面,掌握FlowLayout、BorderLayout、CardLayout、GridLayout布局管理器的使用,并掌握组件的精确定位方式;2、掌握事件处理的三种常见的实现方式:·通过主类创建监听器对象的实现方式;·通过自定义内部类创建监听器对象的实现方式;·在注册时通过匿名类直接创建监听器对象的实现方式。
3、设计图形用户界面的应用程序。
三、实验方案(程序设计说明)[题目1] 编写图形界面用户程序,采用事件处理的三种实现方法求一个数的平方。
1、在图形界面中提供“文本框、标签、按钮”,文本框用于输入数据,标签显示数据的平方,单击按钮可以实现求数据的平方;2、分别采用事件处理的三种方法实现。
[题目2] 编写图形界面用户程序,实现“幸运数”游戏。
要求如下:1、在图形界面用户程序中提供“按钮、标签”等组件;2、标签用于显示随机数,单击按钮可以改变随机数并实现对随机数的判断:若两数相等,则出现相等提示,否则出现不等提示。
四、实验程序和运行结果请附页记录正确的源程序五、实验总结六、教师评语及成绩1、求平方import javax.swing.*;import java.awt.*;import java.awt.event.*;//通过主类创建监听器对象class myFrame extends JFrame implements ActionListener{ JLabel l; JButton b; JTextField t;myFrame(JFrame f){ l=new JLabel("0"); b=new JButton("求平方"); t=new JTextField("0");f.setLayout(null);f.add(l); f.add(b); f.add(t);t.setBounds(1,1,60,20); b.setBounds(71,1,60,20); l.setBounds(141,1,60,20);b.addActionListener(this); }public void actionPerformed(ActionEvent e){ int x=Integer.parseInt(t.getText());int y=x*x; l.setText(Integer.toString(y)); }}//通过自定义内部类创建监听器对象class myFrame extends JFrame{ JLabel l; JButton b; JTextField t;myFrame(JFrame f){ l=new JLabel("0"); b=new JButton("求平方"); t=new JTextField("0");f.setLayout(null);f.add(l); f.add(b); f.add(t);t.setBounds(1,1,60,20); b.setBounds(71,1,60,20); l.setBounds(141,1,60,20); BHandler h=new BHandler();b.addActionListener(h); }private class BHandler implements ActionListener {public void actionPerformed(ActionEvent e){ int x=Integer.parseInt(t.getText());int y=x*x; l.setText(Integer.toString(y)); }}}//在注册时通过匿名类直接创建临听器对象class myFrame extends JFrame{ JLabel l; JButton b; JTextField t;myFrame(JFrame f){ l=new JLabel("0"); b=new JButton("求平方"); t=new JTextField("0");f.setLayout(null);f.add(l); f.add(b); f.add(t);t.setBounds(1,1,60,20); b.setBounds(71,1,60,20); l.setBounds(141,1,60,20);b.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){ int x=Integer.parseInt(t.getText());int y=x*x; l.setText(Integer.toString(y)); }});}}public class test {public static void main(String[] args) {JFrame jf=new JFrame("平方数"); jf.setBounds(100,100,400,300); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);myFrame myf=new myFrame(jf); }}2、幸运数import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.Random;class myJFrame extends JFrame implements ActionListener{ private JButton jb;private JLabel [] jl;public myJFrame(JFrame f){ f.setSize(300,300);f.setLayout(new FlowLayout());jl=new JLabel[3];for(int i=0; i<3; i++){ jl[i]=new JLabel("*");f.add(jl[i]); }jl[2].setText("试一试");jb=new JButton("开始");jb.addActionListener(this);f.add(jb);}public void actionPerformed(ActionEvent e){ Random x=new Random();Random y=new Random();jl[0].setText(Integer.toString(x.nextInt(10)));jl[1].setText(Integer.toString(x.nextInt(10)));if (jl[0].getText().equals(jl[1].getText()))jl[2].setText("恭喜您");elsejl[2].setText("再试试");}}public class test{public static void main(String[] args) {JFrame f=new JFrame("我的窗口");f.setBounds(100,100,400,300);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myJFrame m=new myJFrame(f); }}。
南京工程学院实验报告课程名称 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%首先算出每个阶段的速扣数,然后用此公式:应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数。
闽江学院软件学院实验报告实验名称图形用户编程实验项目 Swing编程专业班级 09可视化2 姓名卓春娥学号 220097101208 指导教师赵志燕成绩日期一、实验目的1.掌握Myeclipse的使用。
2.掌握Swing编程。
二、实验内容1.在MyEclipse下建立一个工程2.利用Swing编写一个图形用户界面,显示一个按钮,一个标签。
3.功能要求:能在标签上显示按钮点击的次数。
三、实验步骤●在MyEclipse下建立一个新工程。
导入SWING包。
import javax.swing.*;import java.awt.*;import java.awt.event.*;●建好窗体的框架。
容器的设置JFrame frame = new JFrame("SwingApplication");SwingApplication app = new SwingApplication();Component contents = app.createComponents();frame.getContentPane().add(contents, BorderLayout.CENTER);●在建好的窗体下添加设置按钮、标签。
JButton button = new JButton("这是一个按钮");button.setMnemonic(KeyEvent.VK_I);button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {numClicks++;label.setText(labelPrefix + numClicks);}●将组建放到容器上,为组建增加边框,并处理图形界面程序的两个事件。
JPanel pane = new JPanel();pane.setBorder(BorderFactory.createEmptyBorder(30, 30, 10, 30));pane.setLayout(new GridLayout(0, 1));pane.add(button);pane.add(label);闽江学院软件学院实验报告实验名称图形用户编程实验项目 Swing编程专业班级 09可视化2 姓名卓春娥学号 220097101208 指导教师赵志燕成绩日期return pane;}public static void main(String[] args) {try {UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());} catch (Exception e) { }// 创建顶级容器,并将其它控件放在里面JFrame frame = new JFrame("SwingApplication");SwingApplication app = new SwingApplication();Component contents = app.createComponents();frame.getContentPane().add(contents, BorderLayout.CENTER);// 框架配置完毕,显示主框架frame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}实现算法并调试。
河南工业大学实验报告专业班级:计科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图形用户界面程序设计实验任务(一)第页专业班级学号__ __ 姓名实验日期:2010 年11 月 2 日报告退发(订正、重做)一、实验目的•掌握框架、对话框、面板等容器的使用•掌握标签、按钮等组件的使用•初步了解java图形界面事件处理机制的原理二、实验环境1、微型计算机一台2、DOS或WINDOWS操作系统,j2se开发包三、实验内容1、创建一个框架类实例对象app作为窗体2、往窗体里添加三个按钮(b1、b2、b3)、两个标签(l1,l2)、三个文本输入框(t1、t2、t3),要求标签即包含一个图标也包含文本,且文本覆盖在图标的上面.3、可以在t1中输入文本信息,点击按钮b1后,标签l1的内容被设置为t1中的文本信息.4、点击按钮t2时,弹出一个有模一般对话框,对话框中包含一个文本编辑框(dt)和两个按钮(db1、db2),db1为确认按钮,db2为取消按钮,当点击对话框db1确定按钮时,将文本编辑框dt中的文本信息返回,当点击取消或直接关闭对话框,返回值为:“点击取消或关闭”.将对话框的返回值在t2中显示.5、点击按钮t3时,弹出一个选择输入对话框(标准对话框之一).要求将该对话框的返回值在t3中显示.6、设计一个计算器,要求见第八章习题6四、实验步骤和结果1.在Eclipse中新建名字为test7的工程.2.新建swingtest.java类.3.实验内容1至5程序如下所示:// swing1.javaimport java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.BoxLayout;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class swingtest extends JFrame{public static void main(String[] args){final JFrame app=new JFrame();// 创建按钮、标签、文本输入框这三类面板JPanel jpbt=new JPanel();JPanel jplabel=new JPanel();JPanel jptextfield=new JPanel();// 采用盒式布局管理器// 按钮在窗体南部,标签在北部,文本输入框在中部jpbt.setLayout(new BoxLayout(jpbt, BoxLayout.X_AXIS));//组件在容器中沿水平方向排列JButton b1=new JButton("b1");JButton b2=new JButton("b2");final JButton b3=new JButton("b3");jpbt.add(b1);jpbt.add(b2);jpbt.add(b3);jplabel.setLayout(new BoxLayout(jplabel, BoxLayout.X_AXIS));final JLabel l1=new JLabel("l1",newImageIcon("photo/22.jpg"),JLabel.LEFT);JLabel l2=new JLabel("l2",newImageIcon("photo/33.jpg"),JLabel.LEFT);l1.setHorizontalTextPosition(JLabel.CENTER);l2.setHorizontalTextPosition(JLabel.CENTER);jplabel.add(l1);jplabel.add(l2);jptextfield.setLayout(new BoxLayout(jptextfield, BoxLayout.X_AXIS));final JTextField t1=new JTextField("t1");final JTextField t2=new JTextField("t2");final JTextField t3=new JTextField("t3");jptextfield.add(t1);jptextfield.add(t2);jptextfield.add(t3);b1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0){l1.setText(t1.getText());}});b2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0){final JDialog jd=new JDialog(app,"对话框!",true);Container c=jd.getContentPane();c.setLayout(new FlowLayout());final JTextField jt=new JTextField(10);JButton db1=new JButton("db1");db1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0){t2.setText(jt.getText());jd.dispose();}});JButton db2=new JButton("db2");db2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0){t2.setText("点击取消或关闭");jd.dispose();}});/* //当点击"直接关闭对话框",返回值为:“点击取消或关闭”.* jd.addWindowListener(new WindowListener(){@Overridepublic void windowOpened(WindowEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void windowIconified(WindowEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void windowDeiconified(WindowEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void windowDeactivated(WindowEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void windowClosing(WindowEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void windowClosed(WindowEvent arg0) {// TODO Auto-generated method stubt2.setText("点击取消或关闭");}@Overridepublic void windowActivated(WindowEvent arg0) {// TODO Auto-generated method stub}});*/c.add(jt);c.add(db1);c.add(db2);jd.pack();jd.setLocationRelativeTo(app);jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);jd.setVisible(true);jd.setResizable(false);}});b3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){if(e.getSource()==b3){String []s={"很轻松","还可以","很困难"};String x;x=(String)JOptionPane.showInputDialog(null, "学习Java轻松吗?","输入框",JOptionPane.QUESTION_MESSAGE,null,s,s[0]);t3.setText(x);}}});Container c=app.getContentPane(); //获取内容窗格app.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));//组件在容器中沿垂直方向排列c.add(jplabel);c.add(jptextfield);c.add(jpbt);app.setSize(400,150);app.setVisible(true);app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);app.setResizable(false);app.setLocationRelativeTo(null); // 居中}}4. 实验内容1至5程序结果运行如下:5.计算器程序如下:// SumTool.javaimport java.awt.Container;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;public class SumTool extends JFrame {public static void main(String[] args) {JFrame jf=new JFrame("Sum");// 创建文本输入框面板JPanel jptextfield=new JPanel();// 采用盒式布局管理器jptextfield.setLayout(new BoxLayout(jptextfield,BoxLayout.X_AXIS));//组件在容器中沿水平方向排列final JTextField t1=new JTextField(7);JTextField t2=new JTextField("+");final JTextField t3=new JTextField(7);final JTextField t5=new JTextField(7);t1.setEditable(true);t2.setEditable(false);t3.setEditable(true);t5.setEditable(true);JButton t4=new JButton("=");t4.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0){String s1=t1.getText();String s3=t3.getText();int m1=Integer.valueOf(s1);int m3=Integer.valueOf(s3);int m5=m1+m3;String s5=String.valueOf(m5);t5.setText(s5);}});jptextfield.add(t1);jptextfield.add(t2);jptextfield.add(t3);jptextfield.add(t4);jptextfield.add(t5);Container c=jf.getContentPane(); //获取内容窗格jf.setLayout(new BoxLayout(c, BoxLayout.X_AXIS));//组件在容器中沿水平方向排列c.add(jptextfield);jf.setSize(400,60);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setResizable(false);jf.setLocationRelativeTo(null); // 居中}}6.计算器结果如下:五、实验总结在这一章的AWT设计实验中,虽然Java设计界面用Swing设计会比较繁琐,但是对于了解Java底层设计,学习这章是必要的.在运用到各种控件编程,不仅可以使我们进行Swing设计,还使我们更好地了解Java的美妙,也让我们懂得了Eclipse工具的人性化服务平台所带来的乐趣.。
图形界面(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结果:输出正常。
六、调试过程中的问题
一开始没有对输入流输入的字符串转为double型数据,导致不能转换,采用转为double型并抛出异常后解决了该问题。
七、程序设计总结
1、通过该实验掌握了JAVA图形界面程序设计的方法。
2、熟悉了JAVA SWING中的容器、组件、布局以及事件监视器和事件接口的使用。
3、在逐步地优化和调试中实现了一个较实用的界面。