1、java实验32实验项目名称: 图形用户界面 实验学时: 6 同组学生姓名: 实验地点: 1514/A203 实验日期: 2016、5、4/5、6/5、11 实验成绩: 批改教师: 王倩倩 批改时间: 一、实验目的与要求(1)掌握Swing组件的使用方法;(2)熟练掌握Swing中常用布局管理器的使用方法;(3)掌握用户界面动作与事件的处理程序的编写方法;(4)熟练掌握构造用户界面的方法与常见界面元素的使用;(5)熟练掌握Java绘图的主要方法。(6)调试程序要记录调试过程中出现的问题及解决办法;(7)编写程序要规范、正确,上机调试过程与结果要有记录,不断积累编程及调试经验;(8) 做完实验后
2、给出本实验的实验报告。二、实验仪器与设备奔腾以上计算机,Windows 操作系统,装有JDK1、7与Eclipse软件。三、实验过程1、 计算器设计2、 模拟裁判评分。设计如图所示图形界面,显示n个裁判的评分,根据制定规则计算出最后得分。要求:图形界面采用表格显示裁判评分,随裁判人数变化而变化;指定分数范围,若超出,则异常处理;得分规则有指定接口约定,由多个接口对象给出多种得分规则,如求平均数值,或去掉一个最高分与一个最低分后,再求平均值。3、 编译运行下例,然后修改程序,当使用鼠标单击后在另一位置重新绘制月亮。【例】 在Applet中画月亮。import java、awt、*;import
3、java、applet、Applet;public class MoonApplet extends Applet public void paint(Graphics g) /在Applet上绘图 g、setColor(Color、red); g、drawString(The Moon,100,20); int x=0,y=0; /圆外切矩形左上角坐标 x = this、getWidth() /4; y = this、getHeight() /4; int diameter = Math、min(this、getWidth()/2, this、getHeight()/2); /圆的直径 g、
4、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的各种调试方
5、法;(4)学会查阅Java API文档,如查找事件类的处理里方法。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)第1题实验代码:package shiyan3_1; import java、awt、*;import java、awt、event、*;import javax、swing、*;import javax、swing、event、*;public class calculatorframe extends JFrame implements ActionListener private JTextField text; private
6、 JButton buttons; public calculatorframe() super(Calculator); this、setSize(500,300); this、setLocation(300,240); this、setDefaultCloseOperation(3);/EXIT_ON_CLOSE text = new JTextField(,20); text、setHorizontalAlignment(JTextField、RIGHT); text、setEditable(false); this、getContentPane()、add(text,North); J
7、Panel panel=new JPanel(new GridLayout(5,4); this、getContentPane()、add(panel,Center); String str=sqrt,+/-,Backspace,C,7,8,9,/,4,5,6,*,1,2,3 ,-,0,、,=,+; this、buttons = new JButtonstr、length; for (int i=0; ibuttons、length; i+) buttonsi=new JButton(stri); panel、add(buttonsi); buttonsi、addActionListener(
8、this); this、setVisible(true); public void actionPerformed(ActionEvent ev) String current=ev、getActionCommand(); if(current、equals(C) text、setText(0); else if(current、equals(Backspace) String str=text、getText()、substring(0,text、getText()、length()-1); text、setText(str); else if(text、getText()、equals(0
9、)/字符串比较要用equals text、setText(); if(!current、equals(=) if(current、equals(sqrt) String strtemp=text、getText(); double value=Double、parseDouble(strtemp); text、setText(+Math、sqrt(value); else text、setText(text、getText()+current); else String strtemp=text、getText(); String str1,str2; int i=0; char op; do
10、uble value=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
11、=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、parseD
12、ouble(str2); text、setText(+value); public static void main(String args) new calculatorframe(); 第2题实验代码:package shiyan3_2;import java、io、*;import java、awt、*;import java、awt、event、*;import javax、swing、*;import javax、swing、event、*;import javax、swing、table、DefaultTableModel;import shiyan2_6、MyException;
13、public class analogscore extends JFrame implements ActionListener,scoreprinciple private JTextField text; private JButton button; private DefaultTableModel tablemodel; private double a; public analogscore(double a) super(模拟裁判评分); this、setBounds(300,240,780,400); this、setDefaultCloseOperation(EXIT_ON
14、_CLOSE); this、a=a; int row; int rest; if(a、length%5!=0) if(a、length5) this、tablemodel=new DefaultTableModel(1,a、length); int t=0,i; for(i=0;ia、length;i+) this、tablemodel、setValueAt(at, 0, i); t+; else System、out、println(就是整行); row=a、length/5+1; rest=a、length%5; System、out、println(+row); System、out、p
15、rintln(+rest); this、tablemodel=new DefaultTableModel(row,5); int t=0,i,j; for(i=0;irow-1&ta、length;i+) for(j=0;j5;j+) this、tablemodel、setValueAt(at, i, j); t+; for(j=0;jrest;j+) this、tablemodel、setValueAt(at,row-1, j); t+; else System、out、println(不就是整行); row=a、length/5; this、tablemodel=new DefaultTa
16、bleModel(row,5); int t=0,i,j; for(i=0;irow&ta、length;i+) for(j=0;j2) double max=a0, min=a0; for (int i=0; imax) max = ai; if (aimax) min= ai; return (sum-max-min)/(a、length-2); return 0、0; public void actionPerformed(ActionEvent ev) double t=this、sp(a); this、text、setText(+t); public static void main
17、(String arg) try BufferedReader strin=new BufferedReader(new InputStreamReader(System、in);/建立输入流缓冲区 System、out、println(请输入裁判人数:); String cl = strin、readLine(); int n=Integer 、parseInt(cl); System、out、println(请以此输入裁判的分数:); String strArray = new String n; for(int i=0;in;i+) strArrayi= strin、readLine()
18、; if(Double、parseDouble(strArrayi)10) throw new MyException(); double a=new doublen; for(int i=0;in;i+) ai= Double、parseDouble(strArrayi); System、out、println(+ai); /if(ai10) throw new MyException(); new analogscore(a); catch(IOException ex) System、out、println(I/O有关的异常); catch(NumberFormatException e
19、x) System、out、println(字符串不能转换成整数); catch( MyException ex) System、out、println(输入评分超出范围); 第3题实验代码:package shiyan3_3_1;import java、awt、*;import java、awt、event、*;import javax、swing、*;import javax、swing、event、*;public class mooncanvas extends Canvas implements MouseListener private Color color; int x = t
20、his、getWidth() /2; int y = this、getHeight() /2; public mooncanvas() this、addMouseListener(this); public mooncanvas(Color color) this、setColor(color); public void setColor(Color color) this、color=color; public void paint(Graphics g) g、setColor(Color、red); g、drawString(The Moon,300,20); /圆外切矩形左上角坐标 in
21、t diameter = 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); /画圆 public void mousePressed(MouseEvent e) x=e、getX(); y=e、getY(); repaint(); public
22、void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseClicked(MouseEvent e) x=e、getX(); y=e、getY(); repaint(); /*public void update(Graphics g) paint(g); super、update(g); */package shiyan3_3_1;import java、awt、*;import java、awt、
23、event、*;import javax、swing、*;import javax、swing、event、*;public class MoonJframe extends JFrame private mooncanvas canvas; public MoonJframe() super(月亮); Dimension dim=this、getToolkit()、getScreenSize(); this、setBounds(dim、width/4,dim、height/4,dim、width/2,dim、height/2); this、setDefaultCloseOperation(E
24、XIT_ON_CLOSE); this、canvas = new mooncanvas(); this、getContentPane()、add(this、canvas,Center); this、setVisible(true) public static void main(String args) new MoonJframe(); 第4题实验代码:package shiyan3_4;import java、awt、*; import java、awt、event、*; import javax、swing、*; public class archimedeslinejframe ext
25、ends JFrame implements ActionListener private ArchimedesCanvas archimedes; private JButton button_color; public archimedeslinejframe() super(阿基米德螺线); Dimension dim=getToolkit()、getScreenSize(); this、setBounds(dim、width/4,dim、height/4,dim、width/2,dim、height/2); this、setDefaultCloseOperation(EXIT_ON_CLOSE); button_color=new JButton(选择颜色); this、getContentPane()、a
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1