资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
JAVA课程设计报告设计题目:绘制散点图小组成员:1. 程序功能:功能一:打开一个文本文件,读取其中的坐标数值并绘制出散点图,并同时在控制台中输出读取的坐标功能二:根据用户输入的点数,随机绘制散点图2. 设计思路和框图:首先创建一个框架窗口,在其上添加菜单栏,在菜单项上增加打开文件和随机生成散点图。在具体程序中,创建窗口的类为Diagram,在类中写入paintComponent函数,直接在容器上绘图,获取参数时用getGraphics()。画坐标线是用drawLine(),画坐标点用drawString()。因为小程序有两个功能,所以paintComponent()中有两个方法,一个用来绘制读取的文件中得坐标,另一个绘制Math.random()函数产生的随机数坐标,坐标数由输入对话框获得。因为要设置一个参数来判断调用哪一个方法。对于菜单项“打开”和“随机生成散点图”分别添加事件监听器,用JFileChooser类来实现文件的打开功能,用文件输入流FileReader和缓冲字符输入流BufferedReader来读取文件中得内容,当点击“随机生成散点图”菜单项时用showInputDialog()函数创建输入对话框,对话框中的文本框输入用户要生成的散点数。3. 程序实现的关键点:在程序执行过程中repaint()函数的调用;调用paintComponents()函数时用getGraphics()获得参数;因为坐标线绘制时不是以容器中的零点开始,所以读取文件中的坐标值和随机生成坐标值时数值要做相应的调整以适应容器。4. 程序代码及执行结果:package scatter.update;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import javax.swing.*;public class ScatterUpdate public static int a;/* * param args */public static void main(String args) / TODO Auto-generated method stubDiagram dia=new Diagram();class Diagram extends JFrame implements ActionListenerJMenuBar menu=new JMenuBar();JMenu file=new JMenu(文件);JMenuItem open=new JMenuItem(打开);JMenuItem rand=new JMenuItem(随机生成散点图);Container con=getContentPane();int a,c=1;String num;JFileChooser chooser=new JFileChooser();Diagram()super(散点图绘制小程序V1.1);this.setBounds(500,200,400,400);setJMenuBar(menu);menu.add(file);file.add(open);file.add(rand);rand.addActionListener(this);open.addActionListener(this);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=rand)con.repaint();String s=JOptionPane.showInputDialog(null, 输入点数, 随机生成散点图, JOptionPane.QUESTION_MESSAGE);a=Integer.parseInt(s);c=1;paintComponents(getGraphics();else if(e.getSource()=open)con.repaint();choice();c=0;paintComponents(getGraphics();public void paintComponents(Graphics g)/super.paintComponents(g);if(c=1)g.setColor(Color.DARK_GRAY);g.drawLine(30, 70, 30, 370);g.drawLine(30, 370, 330, 370);g.drawString(0, 15, 380);g.drawString(300, 325, 385);g.drawString(300, 8, 65);/Graphics g2=(Graphics)g;int x,y,b=0;while(ba)x=(int)(Math.random()*301)+30;y=(int)(Math.random()*301)+70;g.setColor(Color.MAGENTA);g.drawString(*, x, y);b+;else if(c=0)/Graphics2D g2= (Graphics2D)g;g.setColor(Color.RED);g.drawLine(30, 70, 30, 370);g.drawLine(30, 370, 330, 370);g.drawString(0, 15, 380);g.drawString(300, 325, 385);g.drawString(300, 8, 65);int x,y,i=0;while(inum.length)x=Integer.parseInt(numi);y=Integer.parseInt(numi+1);i=i+2;g.setColor(Color.BLUE);g.drawString(*, x+30, 400-y);void choice()int i=0;if(chooser.showOpenDialog(this)=JFileChooser.APPROVE_OPTION)File file=chooser.getSelectedFile();try FileReader fread = new FileReader(file);BufferedReader bread=new BufferedReader(fread);String line=bread.readLine();num=line.split(,);/line=bread.readLine();while(inum.length)System.out.println(+numi+,+numi+1+);i=i+2; catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();5. 本次课程设计的收获: 锻炼了独自分析和解决问题的能力,增加了JAVA编程实践的经验。初步掌握了JAVA绘图函数的使用及JFileChooser类的初次尝试。6. 程序的不去及需改进的地方: 程序总体的UI不够美观;使用JFileChooser类弹出文件打开框时,如果不选择文件直接退出会出现异常;绘图过程中画面显示有时不够稳定;程序的文件读取功能需要进一步加强。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号