//BarChart.java - Jimmy Kurian |
importjava.util.ArrayList; |
importjava.awt.Graphics2D; |
importjava.awt.geom.Line2D; |
importjava.awt.geom.Point2D; |
importjava.awt.Rectangle; |
publicclassBarChart |
{ |
privateint width; |
privateint height; |
privateArrayList<Double> data; |
publicBarChart(intaWidth, intaHeight) |
{ |
width = aWidth; |
height = aHeight; |
data =newArrayList<Double>(); |
} |
publicvoidadd(doublevalue) |
{ |
data.add(value); |
} |
publicvoiddraw(Graphics2Dg2) |
{ |
int i =0; |
double max =0; |
for (Double wrapper : data) |
if(max < wrapper) |
max = wrapper; |
int xwidth = width -1; |
int yheight = height -1; |
int xleft =0; |
for (i =0; i < data.size(); i++) |
{ |
int xright = xwidth * (i +1) / data.size(); |
int barWidth = xwidth / data.size(); |
int barHeight = (int) Math.round(yheight * data.get(i) / max); |
Rectangle bar = |
newRectangle(xleft, yheight - barHeight, |
barWidth, barHeight); |
g2.draw(bar); |
xleft = xright; |
} |
} |
} |
//BarChartComponent.java - Jimmy Kurian |
importjavax.swing.JComponent; |
importjava.awt.Graphics; |
importjava.awt.Graphics2D; |
publicclassBarChartComponentextendsJComponent |
{ |
publicvoidpaintComponent(Graphicsg) |
{ |
Graphics2D g2 = (Graphics2D) g; |
BarChart c =newBarChart(getWidth(), getHeight()); |
c.add(1.1); |
c.add(3.6); |
c.add(4.0); |
c.add(3.7); |
c.add(2.1); |
c.add(2.7); |
c.add(2.6); |
c.draw(g2); |
} |
} |
//BarChartTester.java - Jimmy Kurian |
importjavax.swing.JFrame; |
publicclassBarChartTester |
{ |
publicstaticvoidmain(String[] args) |
{ |
JFrame frame =newJFrame(); |
finalintFRAME_WIDTH=300; |
finalintFRAME_HEIGHT=400; |
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); |
frame.setTitle('BarChart'); |
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); |
BarChartComponent component =newBarChartComponent(); |
frame.add(component); |
frame.setVisible(true); |
} |
} |