# Array in Diagramm ausgeben



## dehlen (11. Jan 2011)

Hey Leute ich habe mal eine Frage und zwar habe ich folgendes Programm, dass 10 zufällige Zahlen ausgibt... ich muss nun die Arrays in einem Diagramm ausgeben ungefähr so 
	

	
	
		
		

		
			





Wie ihr sehen könnt muss dies nicht geordnet werden also ich brauche wirklich nur die Ausgabe in einem Balkendiagramm .. wie mache ich das mit g.drawString und einer paint() Methode ?!
Bin offen für allerlei Ratschläge ;-)

Achja also hier mein Code zum Arraymit 10 zufälligen Zahlen erstellen:

```
import java.util.Random;

public class Arraydiagramm
{
    public int[] zahlen;
    public Arraydiagramm()
    {
        zahlen = new int[10];
    }

       public void erzeugen() {
       Random zufall = new Random();
        
        for(int i=0;i<10;i++)
        zahlen[i]=zufall.nextInt(1000);
    }
    
        public void ausgeben() {

        
        for(int i=0;i<10;i+=10) {
        System.out.println("\f");
        System.out.println("Zahl1:" +"\t" +zahlen[i]);
        System.out.println("Zahl2:" +"\t"+zahlen[i+1]);
        System.out.println("Zahl3:" +"\t"+zahlen[i+2]); 
        System.out.println("Zahl4:" +"\t"+zahlen[i+3]); 
        System.out.println("Zahl5:" +"\t"+zahlen[i+4]); 
        System.out.println("Zahl6:" +"\t"+zahlen[i+5]); 
        System.out.println("Zahl7:" +"\t"+zahlen[i+6]); 
        System.out.println("Zahl8:" +"\t"+zahlen[i+7]); 
        System.out.println("Zahl9:" +"\t"+zahlen[i+8]);
        System.out.println("Zahl10:" +"\t"+zahlen[i+9]);
                                           
    }
}
}
```

Danke


----------



## XHelp (11. Jan 2011)

Was soll die Schleife mit der Ausgabe dasstellen? oO

Fang doch klein an, such das Maximum raus, damit du weißt, wie groß die Balken werden sollen.
Versuch dann einfach nur Linien zu zeichnen, später dann Balken daraus machen etc.
Was willst du eigentlich mit drawString machen?


----------



## dehlen (11. Jan 2011)

ich meinte drawRect.. die ausgabe gibt doch einfach nur 10 züfällige Zahlen aus oder nicht ?!
ja ich werde es mal so versuchen wie du gesagt hast


----------



## dehlen (11. Jan 2011)

ok also habe gemerkt das mein erster Ansatz banane war.. ich hab nun mal ein Applet geschrieben ohne Ausgabe:

```
import java.awt.*;
import javax.swing.*;
import java.util.Random;

public class Diagrammausgabe extends JApplet
{
 public int[] zahlen;
    
    public void init()
    {
       zahlen = new int[10];
       
       
      
    }
    
    private static void bubbleSort(int[] zahlen) {
        int n = zahlen.length;
		int temp = 0;
 
		for(int i=0; i < n; i++){
			for(int j=1; j < (n-i); j++){
 
				if(zahlen[j-1] > zahlen[j]){
					//tausche die Elemente
					temp = zahlen[j-1];
					zahlen[j-1] = zahlen[j];
					zahlen[j] = temp;
				}
 
			}
		}
}
public void paint(Graphics g) {
Random zufall = new Random();
        
        for(int i=0;i<10;i++)
        zahlen[i]=zufall.nextInt(1000);
        bubbleSort(zahlen);

for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
g.drawString(""+zahlen[i*10+j],40+j*40,40+i*40);
}
}
```

So nun muss ich per bubble sort die arrays sortieren und dann in balkediagramm(Graphics g) ausgeben nicht wahr ?!

EDIT:
So habe nun mal die ArrayWerte per bubblesort sortiert soweit ich das beurteilen kann also fehlt jetzt nur noch die Ausgabe in einer graphischen Art und Weise


----------



## XHelp (11. Jan 2011)

Das ist nicht ganz der Bubblesort-Verfahren...
Sicher, dass da keine ArrayIndexOutOfBounds-Exception fliegt?
Aber Sortierung und Zufallszahlerzeugung gehört nicht in die paint-Methode


----------



## dehlen (11. Jan 2011)

ne bekomme keine exception und die zahl generierung und die sortierung hab ich jetzt anders platziert....naja also auf jeden fall klappt das programm jetzt soweit das ich 10 geordnete zahlen ausgegeben bekomme.. so jetzt brauche ich halt einen ansatz das graphisch darzustellen


----------



## XHelp (11. Jan 2011)

Schau dir einfach ein Beispiel an, wo ein Rechteck gemalt wird. Dann musst du es nur noch in einer Schleife machen und das wars.


----------



## dehlen (11. Jan 2011)

ok danke


----------

