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 {
  }
}

Android新手入门2016(1)--创建和运行helloworld

我是新手,但不是第一次接触了。陆陆续续做了一些东西,还写过一些小游戏。不过都是直接用cocos2d-x的多。 从现在起开始学习学习吧。不为什么,因为穷!!! 之前本来带过一个手游项目,其实还没立项,就...
  • u012175089
  • u012175089
  • 2016年03月04日 18:23
  • 2940

eclipse 写HelloWorld

什么语言的学习都是从HelloWorld开始,这是非常神奇的。java也一样,那我们一起来从HelloWorld开启java的编程大世界。 首先我们从eclipse出发: 接着: ...
  • yi_zz
  • yi_zz
  • 2012年02月24日 00:59
  • 8604

Struts2学习(一) 基础环境搭建与创建HelloWorld程序

一:开发环境的搭配(使用MyEclipse2015+Tomcat)\ 第一步:创建WEB工程 在这里可以将Target runtime转换成你自己的服务器 第二步:开发环境搭配(利用IDE自动...
  • sinat_16108045
  • sinat_16108045
  • 2016年02月29日 14:30
  • 391

Linux下终于写出了HelloWorld了

今天我终于写出了helloWorld!这是每一个程序员的起点,呵呵!学会的命令:Here Compile:gcc souce.c -o targetHere Run:./targetGet Path:...
  • YouYunnetyang
  • YouYunnetyang
  • 2005年07月22日 23:28
  • 583

Node.js开发入门—HelloWorld再分析

详细分析基于http模块的HelloWorld,介绍代码结构和HTTP协议的相关知识。
  • foruok
  • foruok
  • 2015年08月05日 07:03
  • 7845

原因: java.lang.NoClassDefFoundError: helloworld/Helloworld (wrong name: Helloworld)

错误: 找不到或无法加载主类 Helloworld 原因: java.lang.NoClassDefFoundError: helloworld/Helloworld (wrong name: He...
  • lichen18848950451
  • lichen18848950451
  • 2017年12月11日 21:59
  • 222

IntelliJ IDEA 中创建HelloWorld项目示例

学习阶段,估计只是用到Java的jdk就够了,用IntelliJ IDEA编辑器搭建个简单的开发环境,来搞一些简单的Java测试还是可以的。 我就详详细细的给附上每个步骤的图,来示范一下HelloW...
  • u013067598
  • u013067598
  • 2017年02月06日 13:49
  • 2926

Android Studio系列-HelloWorld

Android Studio系列-HelloWorld前言 Hello 各位,小巫这里要记录一些关于如何使用Android Studio开发Android app,这一篇是开篇。首先来说一下为什么要选...
  • wwj_748
  • wwj_748
  • 2015年03月22日 23:08
  • 3105

第一个shell脚本-helloworld

linux shell 只是一个命令解析器,同时支非交互式命令式脚本编程。[^footnote] 因此不同的shell可以用不同的方法解析命令。 csh 语法类似与C语言。但目前不是很流行。 zsh...
  • huanbia
  • huanbia
  • 2015年11月30日 22:36
  • 1240

Java Web HelloWorld!

距离上次做Java Web开发已经两年多了,我几乎忘得一干二净……都忘记咋搭建环境了……,然后Eclipse官网莫名其妙的挂掉。幸好电脑里还有份两年前的开发环境备份……     重拾Java Web...
  • h3c4lenovo
  • h3c4lenovo
  • 2012年12月04日 22:20
  • 6940
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:helloworld
举报原因:
原因补充:

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