Skip to content

Instantly share code, notes, and snippets.

@joakiti
Created November 1, 2016 19:39
Show Gist options
  • Save joakiti/952ac8b1fc9f90a3d03c67bbb90d0199 to your computer and use it in GitHub Desktop.
Save joakiti/952ac8b1fc9f90a3d03c67bbb90d0199 to your computer and use it in GitHub Desktop.
Histogram
import java.awt.*; import java.awt.event.*;
import javax.swing.*; import java.util.*;
class Histogram extends Frame {
int length;
int xStart;
int xDistance;
int[] y; // Vi skal lige bruge den her...
String[] x;
/** Please add exactly 4 names. */
public Histogram(int[] y, String[] x) {
super();
length = 500;
xStart = 50;
xDistance = 10;
this.y = y;
this.x = x;
}
public void coordinateSystem(Graphics g) {
//x-linje
g.drawLine(xStart, xDistance, xStart, length);
//y-linje
g.drawLine(xStart, length, length+xStart, length);
int k = 90;
/** Tegner alle tallene ude i siden */
for (int i = 0; i <= 10; i++) {
if ( i == 0) {
g.drawString("100", xStart-35, xDistance+5);
}
else {
g.drawString(String.valueOf(k), xStart-35, 4+length/10*i);
k = k-10;
}
}
for (int i = 0; i <= 10; i++) {
/** Der skal oprettes en undtagelse for x-linjen i tilfælde af i = 0. y-linjen virker
* da alle stregerne er afhængig af xStart, men da det ikke er tilfældet med x-linjen
* er dette den eneste løsning.
**/
if (i == 0) {
//x-linjer
g.drawLine(xStart-10, xDistance, xStart, xDistance);
//y-linjer
g.drawLine(xStart + length/10*i, length, xStart + length/10*i, length+10);
}
else {
//x-linjer
g.drawLine(xStart-10, length/10*i, xStart, length/10*i);
//y-linjer
g.drawLine(xStart + length/10*i, length, xStart + length/10*i, length+10);
}
}
}
void histogramLines(Graphics g) {
g.setColor(Color.BLACK);
int k = 2;
//Tegner søjlerne
for (int i = 0; i <= x.length*2; i++){
if ( i == 1) {
g.fillRect(xStart+50*i, length-xStart, length/10, y[0]);
g.drawString(x[0], xStart+65, length+20);
}
else if ( i % 2 == 1) {
g.fillRect(xStart+50*i, length-xStart, length/10, 50);
}
}
// står for at skrive de ord maan gerne vil have under søjlediagrammerne.
for (int i = 1; i< x.length; i++){
g.drawString(x[i], ((65+((xStart+xStart)*i))+xStart), length+20);
}
}
public void paint(Graphics g) {
coordinateSystem(g);
histogramLines(g);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class Frame extends JComponent {
public Frame() {
JFrame window = new JFrame();
window.setSize(1200, 1080);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().add(this);
window.setVisible(true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment