📄 histogram.java
字号:
package test02;import java.awt.*;import javax.swing.*;public class Histogram extends javax.swing.JInternalFrame { public Histogram(int[] data) { int[] data1=data; BarChart chart1 = new BarChart();// int[] data1 = {20, 10, 30, 40,70}; String[] dataName1 = {"<60鍒?"+data1[0]+"浜?, "60-69鍒?"+data1[1]+"浜?, "70-79鍒?"+data1[2]+"浜?, "80-89鍒?"+data1[3]+"浜?,">=90鍒?"+data1[4]+"浜?}; chart1.setData( data1,dataName1); getContentPane().add(chart1); } class BarChart extends JPanel{ private int[] data; private String[] dataName; //private String[] dataName; private double sum=0; public void setData(int[] data,String[] dataName){ this.data=data; this.dataName=dataName; for(int i=0;i<data.length;i++){ sum+=data[i]; } //repaint(); } //Paint the histogram @Override protected void paintComponent(Graphics g){ if(data==null) return; super.paintComponent(g); int width=getWidth(); int height=getHeight(); int interval=(int)((width-40)/(2*data.length+1)); int x=40+interval; //Draw base line g.drawLine(10, height-45, width, height-45); g.drawLine(10, height-45, 10, 50); g.drawString("鎬讳汉鏁帮細"+(int)sum+"浜?, 5, 45); for(int i=0;i<data.length;i++){ double a=((data[i]/sum)*(height-95));//a涓嶄负闆讹紝浣縝arHeight涓嶄负闆? int barHeight=(int)a; g.drawRect(x, height-45-barHeight, interval, barHeight); //Display a letter on the top of the rec g.drawString(dataName[i], x-15, height-45-barHeight-10); x+=2*interval; } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -