天天看點

java 柱狀圖_java實作柱狀圖 | 學步園

這個程式沒有任何的使用價值,起碼我這麼認為,因為malab應付這個任務

* 也就兩行的代碼就搞定了,寫這個代碼的目的完全是因為我們組裡面他們寫了個程式

* 生成一個漸變的柱狀圖,我就是好奇的想寫一寫

生成的結果可以看下圖檔效果,具體柱狀圖的顔色我沒有特别細膩的調,将就看一下效果

java 柱狀圖_java實作柱狀圖 | 學步園

代碼如下:

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.imageio.ImageIO;

public class a

{

public static void main(String[] argv)

{

new create_img();

}

}

class create_img

{

public create_img()

{

try

{

Font myfont = new Font("宋體", Font.ITALIC, 22);

float []number = {0,0,0,0,0,0,0,0,0,0};

for(int i=0;i<10;i++)

{

number[i] = i+1;

}

int max = 10;

Toolkit tk = Toolkit.getDefaultToolkit();

//得到螢幕的長和寬

int width = (int)tk.getScreenSize().getWidth();

int height = (int)tk.getScreenSize().getHeight();

//圖像大小

BufferedImage image = new BufferedImage(width/2, height/2,BufferedImage.TYPE_INT_BGR);

Graphics g = image.getGraphics();

g.setColor(new Color(255, 255,255));

g.fillRect(1, 1, width/2 - 1, height/2 - 1);

g.setColor(new Color(255, 255,255));

g.drawRect(0, 0, width/2 - 1, height/2 - 1);

g.setFont(myfont);

g.setColor(new Color(255, 26,135));

Color c = new Color(227, 227, 227);

for(int i=0;i

{

//10個柱狀圖外殼

g.setColor(c);

g.fillRect(72+(33+40)*i, 54, 33, 133);

g.setColor(c);

g.drawRect(72+(33+40)*i, 54, 33, 133);

Color myc = null;

//顔色數組

myc= new Color(10+20*i,10,20*i);

g.setColor(myc);

//顔色柱狀圖

g.fillRect(72+(33+40)*i, 54+(133-(int)Math.round(133*(number[i]/max))), 33, (int)Math.round(133*(number[i]/max)));

g.setColor(myc);

g.drawRect(72+(33+40)*i, 54+(133-(int)Math.round(133*(number[i]/max))), 33, (int)Math.round(133*(number[i]/max)));

}

c = new Color(181, 181, 181);

//10個柱狀圖的頂端zifuchuan

for(int i = 0;i

if(i==0){

g.setColor(c);

g.setFont(myfont);

g.drawString(number[i]+"s", 72,48);

}else{

g.setColor(c);

g.setFont(myfont);

g.drawString(number[i]+"s", 72+(33+40)*i,48);

}

}

//釋放圖像所包含的資源

g.dispose();

String filename = "D:\\1.jpg";

File file = new File(filename);

if(!file.exists())

{

file.createNewFile();

}

//将圖檔資料流寫入到檔案中

FileOutputStream s = new FileOutputStream(file);

ImageIO.write(image, "JPEG", s);

}catch(IOException e)

{

e.printStackTrace();

}

}

}

自認為注釋還是比較清楚的!!