版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南京工程学院实 验 报 告课程名称 JAVA基础 实验项目名称 图形用户界面设计 实验题目 阿基米德螺线图形设计 实验学生班级 网络132 实验学生姓名 薛康威 学号 202130834 实验时间 2015.5.25 实验地点 信息楼 实验成绩评定 指导教师签字 年 月 日一、实验目的和要求掌握Java Swing组件的使用方法,理解委托事件处理模型,掌握多种布局方式,掌握窗口菜单和快捷菜单设计方式,熟悉在组件上绘图的方法,设计出具有图形用户界面的、能够响应用户界面的、能够响应事件并处理异常的Java应用程序。要求如下:(1) 采用Swing组件设计图形用户界面,使用3个以上相同组件要声明组件
2、数组。(2) 响应事件。(3) 异常处理,当输入数据错误时,弹出对话框,提示重新输入信息。二、实验题目阿基米德螺线图形设计,指定图形大小、位置和颜色。三、实验方法与步骤(需求分析、算法设计思路、流程图等)(1)需求分析这个程序主要由两大块组成,自定义图形用户界面和阿基米德螺线图形算法。(2)算法设计思路首先是界面设计。内容窗格采用边布局,North处添加设置面板,Center处添加画布。其中设置面板采用流布局,添加设置圈数的文本框、选择颜色的单选按钮和最终“确定”的按钮。其次是阿基米德螺线图形算法。根据数学公式r = a,转换成直角坐标方程组后,在图形类Graphics中标点填充即可。最后便是
3、事件处理。在按钮“确定”上注册事件监听,在响应方法里获得圈数(需要做异常处理)、颜色的参数,并调用画布类,将阿基米德螺线画出。四、实验原始纪录(源程序、数据结构等)import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ArchimedesJFrame extends JFrame implements ActionListener private ArchimedesCanvas archimedes; /画布类声明private JButton jb3;private JPanel jp1
4、;private JTextField text_q;private JRadioButton bcolor;private double n; public ArchimedesJFrame() super(阿基米德螺线); Dimension dim=getToolkit().getScreenSize(); this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2); this.setDefaultCloseOperation(EXIT_ON_CLOSE); text_q=new JTextField(10); jp
5、1=new JPanel(); jp1.add(new JLabel(圈数:); jp1.add(text_q); jb3=new JButton(确定); jp1.add(jb3); jb3.addActionListener(this); String lk= , ; for(int i=0;ilk.length;i+) jp1.add(new JLabel(lki); jp1.add(new JLabel(颜色:); String colorstr=红,绿,蓝; ButtonGroup colorgroup=new ButtonGroup(); bcolor=new JRadioButt
6、oncolorstr.length; for(int i=0;ibcolor.length;i+) bcolori=new JRadioButton(colorstri); colorgroup.add(bcolori); jp1.add(bcolori); bcolori.addActionListener(this); this.getContentPane().add(jp1,North); archimedes=new ArchimedesCanvas(Color.black,this.n); this.getContentPane().add(new JScrollPane(arch
7、imedes),Center); this.setVisible(true); /响应方法 public void actionPerformed(ActionEvent e) Color c=null; if(e.getSource()=bcolor0) /获得颜色 c=new Color(255,0,0); if(e.getSource()=bcolor1) /获得颜色 c=new Color(0,255,0); if(e.getSource()=bcolor2) /获得颜色 c=new Color(0,0,255); if(e.getSource()=jb3) try this.n=Do
8、uble.parseDouble(text_q.getText();/获得圈数 catch(NumberFormatException nfex) JOptionPane.showMessageDialog(this, 无法转换成浮点数, 提醒, JOptionPane.WARNING_MESSAGE); /异常处理 try if(n20) throw new Exception( ); archimedes.setn(n); /设置所画圈数 archimedes.setColor(c); /设置所画颜色 archimedes.repaint(); catch(Exception qwe) J
9、OptionPane.showMessageDialog(this, 圈数必须在020之间, 提醒, JOptionPane.WARNING_MESSAGE); /异常处理 public static void main(String args) new ArchimedesJFrame(); /画布类方法实现class ArchimedesCanvas extends Canvas private Color color;private double x; public ArchimedesCanvas(Color color,double n) this.setBackground(Col
10、or.WHITE); this.setColor(color); this.setn(n); public void setColor(Color color) this.color = color; public void setn(double n) this.x = n; public void paint(Graphics g) int x0 = this.getWidth()/2; int y0 = this.getHeight()/2; g.setColor(color); g.drawLine(x0,0,x0,y0*2); /y轴 g.drawLine(0,y0,x0*2,y0)
11、; /x轴for (int i=0; i2048*this.x; i+) /n圈 double angle = i*Math.PI/1024; /角度,分成2*1024点 double radius = 0.05*angle; int x=(int)Math.round(radius*angle*Math.cos(angle); int y=(int)Math.round(radius*angle*Math.sin(angle); g.drawOval(x0+x,y0+y,1,1); /画点 五、实验结果及分析(计算过程与结果、数据曲线、图表等)实验结果:分析说明:阿基米德螺线的圈数设为双精度浮点型,即含半圈、1/4圈等。由于文本框为输入值,圈数的定义无法是负数或者非数字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年内容电商供应链合同协议
- 2025年内容创作者收益分成合同协议
- 2025年历史文化教育协议合同协议
- 2025年冷链物流运输合同协议(医药)
- 2025年冷链物流仓储配送合同协议
- 生命晶石制作基础知识培训计划
- 2025浙江八达电子仪表有限公司时通电气分公司社会招聘及考察人员笔试历年参考题库附带答案详解
- 2025河北衡水故城县故投商业运营有限责任公司故城县润达水务有限公司招聘13人笔试历年参考题库附带答案详解
- 2025江西吉安市万安县城控投资集团有限公司及下属子公司第二批招聘部分岗位任职要求调整延期及缴费安排笔试历年参考题库附带答案详解
- 2025四川纳兴实业集团有限公司招聘4人笔试历年参考题库附带答案详解
- 无人机在野生动物保护中的监控与追踪可行性分析报告
- 农交会营销方案
- 2024-2025学年山东省青岛市李沧区青岛版五年级上册期中测试数学试卷(无答案)
- 篮球场施工合同(标准版)
- 2025年plc电气自动化笔试题及答案
- 2025年汽车后市场汽车维修配件电商平台研究报告
- 中小企业数字化转型实施报告
- 电机与电气控制 课程思政 三相异步电动机正反转运行的控制线路
- 2025-2030高端装备制造业数字化转型实施难点分析
- (2024新版)七上第14课:丝绸之路的开通与经营西域
- 2025年中远海运招聘1189人(含社招)笔试参考题库附带答案详解
评论
0/150
提交评论