您好,欢迎访问三七文档
实验项目名称:图形用户界面实验学时:6同组学生姓名:————实验地点:1514/A203实验日期:2016.5.4/5.6/5.11实验成绩:批改教师:王倩倩批改时间:一、实验目的和要求(1)掌握Swing组件的使用方法;(2)熟练掌握Swing中常用布局管理器的使用方法;(3)掌握用户界面动作与事件的处理程序的编写方法;(4)熟练掌握构造用户界面的方法和常见界面元素的使用;(5)熟练掌握Java绘图的主要方法。(6)调试程序要记录调试过程中出现的问题及解决办法;(7)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(8)做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机,Windows操作系统,装有JDK1.7和Eclipse软件。三、实验过程1.计算器设计2.模拟裁判评分。设计如图所示图形界面,显示n个裁判的评分,根据制定规则计算出最后得分。要求:图形界面采用表格显示裁判评分,随裁判人数变化而变化;指定分数范围,若超出,则异常处理;得分规则有指定接口约定,由多个接口对象给出多种得分规则,如求平均数值,或去掉一个最高分和一个最低分后,再求平均值。3.编译运行下例,然后修改程序,当使用鼠标单击后在另一位置重新绘制月亮。【例】在Applet中画月亮。importjava.awt.*;importjava.applet.Applet;publicclassMoonAppletextendsApplet{publicvoidpaint(Graphicsg)//在Applet上绘图{g.setColor(Color.red);g.drawString(TheMoon,100,20);intx=0,y=0;//圆外切矩形左上角坐标x=this.getWidth()/4;y=this.getHeight()/4;intdiameter=Math.min(this.getWidth()/2,this.getHeight()/2);//圆的直径g.setColor(Color.yellow);g.fillOval(x,y,diameter,diameter);//画圆g.setColor(this.getBackground());//设置为背景色g.fillOval(x-20,y-20,diameter,diameter);//画圆}}4.根据阿基米德螺线的极坐标方程:r=aθ画出相应图形。要求:(1)注意选用适当的布局管理器设计图形用户界面,比较它们的布局情况;(2)养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包的命名方式如three.num1表示实验三的第一题;(3)学会使用Eclipse的各种调试方法;(4)学会查阅JavaAPI文档,如查找事件类的处理里方法。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)第1题实验代码:packageshiyan3_1;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;publicclasscalculatorframeextendsJFrameimplementsActionListener{privateJTextFieldtext;privateJButtonbuttons[];publiccalculatorframe(){super(Calculator);this.setSize(500,300);this.setLocation(300,240);this.setDefaultCloseOperation(3);//EXIT_ON_CLOSEtext=newJTextField(,20);text.setHorizontalAlignment(JTextField.RIGHT);text.setEditable(false);this.getContentPane().add(text,North);JPanelpanel=newJPanel(newGridLayout(5,4));this.getContentPane().add(panel,Center);Stringstr[]={sqrt,+/-,Backspace,C,7,8,9,/,4,5,6,*,1,2,3,-,0,.,=,+};this.buttons=newJButton[str.length];for(inti=0;ibuttons.length;i++){buttons[i]=newJButton(str[i]);panel.add(buttons[i]);buttons[i].addActionListener(this);}this.setVisible(true);}publicvoidactionPerformed(ActionEventev){Stringcurrent=ev.getActionCommand();if(current.equals(C)){text.setText(0);}elseif(current.equals(Backspace)){Stringstr=text.getText().substring(0,text.getText().length()-1);text.setText(str);}else{if(text.getText().equals(0))//字符串比较要用equals{text.setText();}if(!current.equals(=)){if(current.equals(sqrt)){Stringstrtemp=text.getText();doublevalue=Double.parseDouble(strtemp);text.setText(+Math.sqrt(value));}else{text.setText(text.getText()+current);}}else{Stringstrtemp=text.getText();Stringstr1,str2;inti=0;charop;doublevalue=0;/*while(strtemp.charAt(i)!='+'&&strtemp.charAt(i)!='-'&&strtemp.charAt(i)!='*'&&strtemp.charAt(i)!='/'){System.out.println(strtemp.charAt(i));}*/for(i=0;istrtemp.length();i++){if(strtemp.charAt(i)=='+'||strtemp.charAt(i)=='-'||strtemp.charAt(i)=='*'||strtemp.charAt(i)=='/'){break;}}str1=strtemp.substring(0,i);op=strtemp.charAt(i);str2=strtemp.substring(i+1);if(op=='+'){value=Double.parseDouble(str1)+Double.parseDouble(str2);}if(op=='-'){value=Double.parseDouble(str1)-Double.parseDouble(str2);}if(op=='*'){value=Double.parseDouble(str1)*Double.parseDouble(str2);}if(op=='/'){value=Double.parseDouble(str1)/Double.parseDouble(str2);}text.setText(+value);}}}publicstaticvoidmain(Stringargs[]){newcalculatorframe();}}第2题实验代码:packageshiyan3_2;importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;importjavax.swing.table.DefaultTableModel;importshiyan2_6.MyException;publicclassanalogscoreextendsJFrameimplementsActionListener,scoreprinciple{privateJTextFieldtext;privateJButtonbutton;privateDefaultTableModeltablemodel;privatedoublea[];publicanalogscore(doublea[]){super(模拟裁判评分);this.setBounds(300,240,780,400);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.a=a;introw;intrest;if(a.length%5!=0){if(a.length5){this.tablemodel=newDefaultTableModel(1,a.length);intt=0,i;for(i=0;ia.length;i++){this.tablemodel.setValueAt(a[t],0,i);t++;}}else{System.out.println(是整行);row=a.length/5+1;rest=a.length%5;System.out.println(+row);System.out.println(+rest);this.tablemodel=newDefaultTableModel(row,5);intt=0,i,j;for(i=0;irow-1&&ta.length;i++){for(j=0;j5;j++){this.tablemodel.setValueAt(a[t],i,j);t++;}}for(j=0;jrest;j++){this.tablemodel.setValueAt(a[t],row-1,j);t++;}}}else{System.out.println(不是整行);row=a.length/5;this.tablemodel=newDefaultTableModel(row,5);intt=0,i,j;for(i=0;irow&&ta.length;i++){for(j=0;j5;j++){this.tablemodel.setValueAt(a[t],i,j);t++;}}}JTablejtable=newJTable(this.tablemodel);this.getContentPane().add(jtable,North);JPanelpanel=newJPanel(newFlowLayout(FlowLayout.RIGHT));this.getContentPane().add(panel);button=newJButton(平均分);panel.add(button);button.addActionListener(this);text=newJTextField(,8);text.setEditable(false);panel.add(text);this.setVisible(true);}publicdoublesp(doublea[]){doublesum=0;if(a!=null&&a.length2){doublemax=a[0],min=a[0];for(inti=0;ia.length;i++){sum+=a[i];if(a[i]max){max=a[i];
本文标题:java实验3
链接地址:https://www.777doc.com/doc-2880937 .html