java图形程序设计、事件处理与Swing实验报告.doc_第1页
java图形程序设计、事件处理与Swing实验报告.doc_第2页
java图形程序设计、事件处理与Swing实验报告.doc_第3页
java图形程序设计、事件处理与Swing实验报告.doc_第4页
java图形程序设计、事件处理与Swing实验报告.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

集美大学计算机工程学院实验报告课程名称: Java班级: 网络0911实验成绩:指导教师: 郑如滨姓名: 钟小平实验项目名称: 图形程序设计、事件处理与Swing学号: 2009811012上机实践日期: 2011-5-19实验项目编号: 实验九组号:上机实践时间: 15:551、 实验目的 学会图形程序设计,掌握框架的创建,如何添加组件,如何在框架中画图形等问题; 学会AWT事件处理机制,掌握监听器的用法; 学会各类库的常用方法以及集合类的用法。2、 实验内容与设计思想1.画出正弦曲线与相应坐标线。package net.sy9_1;import java.awt.*;import java.awt.geom.*;import javax.swing.JFrame;import javax.swing.JComponent;import java.awt.EventQueue;import java.util.*;class DrawComponent extends JComponent public void paintComponent(Graphics g) Graphics2D g2 = (Graphics2D) g;for (int i = 180; i 540; i+) double j = 150+ Math.sin(i * 3.14 / 180) * 100 ;System.out.println(j);Line2D line = new Line2D.Double(i, j, i, j);g2.draw(line);Line2D line1 = new Line2D.Double(180, 30, 180, 350);g2.draw(line1);Line2D line2 = new Line2D.Double(0, 150, 600, 150);g2.draw(line2);class DrawFrame extends JFrame private static final int WIDTH = 600;private static final int HEIGHT = 300;public DrawFrame() setTitle(SIN);setSize(WIDTH, HEIGHT);DrawComponent component = new DrawComponent();add(component);public class SinTest public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() DrawFrame frame = new DrawFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true););2.进一步根据选择画出余弦曲线或者画出自己编写表达式的曲线3.如何对该代码进行改造,实现对前面的正弦曲线进行拖动,拖拽某个点以改变曲线的图形。类似DraggableCurve.jar执行的效果进阶:实现拖动整个曲线的效果。进阶:实现简单的画笔程序package net.sy9_2;import java.awt.*;import java.awt.event.*;import java.util.*;import java.awt.geom.*;import javax.swing.*;public class SinDrawTest public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() MouseFrame frame = new MouseFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); ); class MouseFrame extends JFrame public MouseFrame() setTitle(Mouse_Sin); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); MouseComponent component = new MouseComponent(); add(component); public static final int DEFAULT_WIDTH = 450; public static final int DEFAULT_HEIGHT =400;class MouseComponent extends JComponent public MouseComponent() xpoint = new ArrayList(); xp = null; setsinx(50,200,400); addMouseListener(new MouseHandler(); addMouseMotionListener(new MouseMotionHandler(); public void setsinx(double x1,double y1,int gap) double x2=0; double y2=y1; xp =new Point2D.Double(x1, y1); xpoint.add(xp); for(;x2gap;) x1=x1+1; y1=y2-(Math.sin(x2/50)*100; xp =new Point2D.Double(x1, y1); xpoint.add(xp); x2=x2+1; xp=null; public void paintComponent(Graphics g) Graphics2D g2 = (Graphics2D) g; double x=0,y=0; g2.draw(new Line2D.Double(50, 0,50, 400); g2.draw(new Line2D.Double(0,200, 400, 200); if(!xpoint.isEmpty() Iterator iter=xpoint.iterator(); if(iter.hasNext() Point2D p1=iter.next(); x=p1.getX(); y=p1.getY(); while(iter.hasNext() Point2D p1=iter.next(); g2.draw(new Line2D.Double(x,y,p1.getX(),p1.getY(); x=p1.getX(); y=p1.getY(); public Point2D find(Point2D p) double x = p.getX(); double y = p.getY(); Iterator iter=xpoint.iterator(); while(iter.hasNext() xp=iter.next(); if(x(xp.getX()-2) if(y(xp.getY()-2) return xp; return null; public void remove(Point2D s) if (s = null) return; if (s = xp) xp = null; xpoint.remove(s); repaint(); private ArrayList xpoint; private Point2D xp; private class MouseHandler extends MouseAdapter public void mousePressed(MouseEvent event) xp = find(event.getPoint(); public void mouseClicked(MouseEvent event) xp = find(event.getPoint();if (xp != null & event.getClickCount() = 2) remove(xp); private class MouseMotionHandler implements MouseMotionListener public void mouseMoved(MouseEvent event) if (find(event.getPoint() = null) setCursor(Cursor.getDefaultCursor(); else setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); public void mouseDragged(MouseEvent event) Point2D p=event.getPoint(); if (xp != null) xp.setLocation(p.getX(),p.getY(); repaint(); 3、 实验使用环境EditPlus,windows74、 实验步骤和调试过程 实验步骤:1、 先复习课本上的相关知识,如类的定义及其用法等知识点。2、 针对实验内容,应用相关知识设计实验操作,上机实践操作。3、 在上机过程中发现错误后,积极了解错误的原因。4、 根据原因解决问题(翻阅书本、问同学),再重新上机实践验证。5、 努力地完成实验相关内容和做好实验报

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论