L
Luc0
Gast
Hello ihr!
Ich habe folgendes Problem:
Ich will ein Balkendiagramm erstellen, bei dem man den Maximalwert bestimmen kann. Anhand des Maximalwertes wird dann die Größe des Balkens berechnet.
Das Panel ist 400Pixel groß, wenn man 100 als Max.wert eingibt, ist 1% 4 Pixel groß.
Anhand der Berechnung wird dann dem Balken die genaue Größe zugewiesen...dort sind aber nur Integer Werte zulässig.
Also:
Wenn ich einen krummen Wert, zum Beispiel 111 eingebe, kommen ja dobule Zahlen ins Spiel!
Jetzt hab ich mir überlegt:
Ich kann eine Methode schreiben, die den Max.Wert so lange um 1 erhöht, bis bei 400%zahl = 0 rauskommt.
Das ist kein Problem wenn der Anfangswert 199 ist, dann muss er ja nur 1 mal durch die Schleife.
Aber wenn ich dann andere Zahlen versuche, hängt sich das Programm auf.
Habt ihr da vielleicht noch bessere Varianten bzw. Tipps auf Lager?
Die Methode um den Wert zu checken:
Vielen Dank im Voraus!!!
Luc0
Ich habe folgendes Problem:
Ich will ein Balkendiagramm erstellen, bei dem man den Maximalwert bestimmen kann. Anhand des Maximalwertes wird dann die Größe des Balkens berechnet.
Das Panel ist 400Pixel groß, wenn man 100 als Max.wert eingibt, ist 1% 4 Pixel groß.
Anhand der Berechnung wird dann dem Balken die genaue Größe zugewiesen...dort sind aber nur Integer Werte zulässig.
Also:
Wenn ich einen krummen Wert, zum Beispiel 111 eingebe, kommen ja dobule Zahlen ins Spiel!
Jetzt hab ich mir überlegt:
Ich kann eine Methode schreiben, die den Max.Wert so lange um 1 erhöht, bis bei 400%zahl = 0 rauskommt.
Das ist kein Problem wenn der Anfangswert 199 ist, dann muss er ja nur 1 mal durch die Schleife.
Aber wenn ich dann andere Zahlen versuche, hängt sich das Programm auf.
Habt ihr da vielleicht noch bessere Varianten bzw. Tipps auf Lager?
Die Methode um den Wert zu checken:
Code:
// public void checkZahlenPs(){
// boolean fertig = false;
// int temp=maxPs;
// while(fertig==false){
//
// if(400%maxPs!=0){
// temp+=1;
// } else {
//
// maxPs=temp;
// zeichneZahlenLinks();
// fertig=true;
// }
//
// }
//
// }
Und die Methode um die Zahlen zu schreiben:
public void zeichneZahlenLinks() {
int anzahlWerteLinks=10;
int maxPstemp=maxPs;
int sprung = 0;
int temp=maxPs/anzahlWerteLinks;
for(int i=0;i<anzahlWerteLinks;i++)
{
if(werteLinks.size()<anzahlWerteLinks){
werteLinks.add(i,new JLabel()) ;
if(maxPstemp<100){
werteLinks.get(i).setText(""+maxPstemp+" -");
}else {
werteLinks.get(i).setText(""+maxPstemp+"-");
}
maxPstemp-=temp;
werteLinks.get(i).setBounds(24,0+sprung,25,77);
sprung+=40;
add(werteLinks.get(i));
}
else {
if(maxPstemp<100){
werteLinks.get(i).setText(""+maxPstemp+" -");
}else {
werteLinks.get(i).setText(""+maxPstemp+"-");
}
maxPstemp-=temp;
werteLinks.get(i).setBounds(24,0+sprung,25,77);
sprung+=40;
add(werteLinks.get(i));
}
}
zeichneBar();
repaint();
}
Vielen Dank im Voraus!!!
Luc0