helloworld

原创 2005年06月02日 10:27:00

package USTC;

import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;

/**
 *
 *<br>Title:生成chart 的类
 *<br>Description:
 *<br>Copyright: Copyright (c) 2005
 * <br>作者:汪征
 * @version 1.0
 */
public class ChartGraphics {
  public ChartGraphics() {
    try {
      jbInit();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  BufferedImage image;

  private void createImage(String fileLocation) {

    try {

      FileOutputStream fos = new FileOutputStream(fileLocation);
      BufferedOutputStream bos = new BufferedOutputStream(fos);
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
      encoder.encode(image);
      bos.close();
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }

  /**
   * 该方法用于绘出图片的内容。
   *  使用方法: cg.graphicsGeneration(6,"d://yang.txt","d://chart.jpg");
   * @param num int:为统计的图的个数,这个个数与fliename文本中的行树对应
   * @param filename String:读取数据的文件全路径,文件格式如下:yang.txt
   *<br>45
   *<br>chian
   *<br>43
   *<br>jepae
   *<br>23
   *<br>mericant
   *<br>453
   *<br>frach
   *<br>60
   *<br>england
   *<br>24
   *<br>hello
   *注意:柱的最大高度200,不能超过8个柱
   * @param newfile String:显示而生成的图的文件全路径
   */
  public void graphicsGeneration(int num, String filename, String newfile) {

    final int X = 10;
    int imageWidth = 300; //图片的宽度
    int imageHeight = 300; //图片的高度
    int columnWidth = 30; //柱的宽度
    int columnHeight = 200; //柱的最大高度
    int heightArray[] = new int[num];
    String title[] = new String[num];
    try {
      RandomAccessFile randomAccessFile = new RandomAccessFile(filename, "r");
      for (int i = 0; i < 2 * num; i++) {
        if ( (i % 2) == 0) {
          heightArray[i / 2] = Integer.parseInt(randomAccessFile.readLine());//读取高度
        }
        else {
          String tmpstr=new String(randomAccessFile.readLine().toString().getBytes("8859_1"),"GB2312");

          title[i / 2] = tmpstr;//读取标题
        }
      }
    }
    catch (Exception e) {
      System.out.println(e);
    }

    ChartGraphics chartGraphics = new ChartGraphics();
    chartGraphics.image = new BufferedImage(imageWidth, imageHeight,
                                            BufferedImage.TYPE_INT_RGB);
    Graphics graphics = chartGraphics.image.getGraphics();
    graphics.setColor(Color.white);
    graphics.fillRect(0, 0, imageWidth, imageHeight);
    graphics.setColor(Color.red);
    for (int j = 0; j < num; j++) {
      //坐标的原点在左上角。
      //columnHeight代表的是最高的地方,columnHeight-heightArray[j]代表的是显示图的每个列的最上方的Y坐标。
      //Y=0是显示图的最高点
      graphics.drawRect(X + (j + 1) * columnWidth, columnHeight - heightArray[j],
                        columnWidth, heightArray[j]);
      graphics.setColor(Color.getHSBColor(j * 13 + 257, j * 5 + 147,
                                          j * 35 + 71));
      graphics.fillRect(X + (j + 1) * columnWidth, columnHeight - heightArray[j],
                        columnWidth, heightArray[j]);
      graphics.setColor(Color.BLACK);
      if (columnHeight - heightArray[j] - 10 < 10) {
        graphics.drawString(title[j], X + (j + 1) * columnWidth, columnHeight);
      }
      else {
        graphics.drawString(title[j], X + (j + 1) * columnWidth,
                            columnHeight - heightArray[j] - 10);
      }
    }
    //graphics.drawRect(X+2*columnWidth, columnHeight-h2, columnWidth, h2);
    //graphics.drawRect(X+3*columnWidth, columnHeight-h3, columnWidth, h3);
    //graphics.drawRect(X+4*columnWidth, columnHeight-h4, columnWidth, h4);
    //graphics.drawRect(X+5*columnWidth, columnHeight-h5, columnWidth, h5);
    chartGraphics.createImage(newfile);
  }

  private void jbInit() throws Exception {
  }
}

OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld

从图中可以看出(参考《OpenCL 编程入门》): 1. 异构计算设备,可以是CPU或GPU。现在也有支持OpenCL的FPGA设备和至强融核协处理设备(MIC)。 2. OpenCL的API通过Co...

SpringMVC的HelloWorld实例

  • 2017年10月20日 23:12
  • 4.6MB
  • 下载

spring5.0_mvc_maven项目_HelloWorld实例

  • 2017年10月11日 20:17
  • 15KB
  • 下载

JavaEE.第一步是环境配置而不是HelloWorld

啥都不讲了,环境配置搞起 所需材料 jdk(Java Development Kit) eclipse for JavaEE tomcat 一步一步JDK 即 Java Development Kit...

spring security helloworld

  • 2016年09月01日 10:59
  • 34KB
  • 下载

Java开发前奏&amp;&amp;HelloWorld

  • 2017年07月25日 02:50
  • 1.61MB
  • 下载

Intellij Idea12第一个安卓程序开发(HelloWorld)及简单讲解Android

一、前言 本helloworld只有3行代码,皆为让没做过安卓的朋友看看安卓的目录结构以及基本的开发方式。  开发环境搭建   http://blog.csdn.net/juyangjia...
  • twlkyao
  • twlkyao
  • 2014年04月12日 20:57
  • 1569

SpringData-1 概述与HelloWorld

  • 2017年04月09日 17:10
  • 14.19MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:helloworld
举报原因:
原因补充:

(最多只允许输入30个字)