Ok, bitte schau mal nach, ob ich nun richtig gemacht habe:
Hier meine ARRAY-Klasse:
package Diagramm;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
public class Arrays{
public static double a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z;
public void Daten(){
LineNumberReader file;
String line;
FileWriter writer;
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String datum = (sdf.format(cal.getTime()));
Calendar cal3 = Calendar.getInstance();
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyyMMdd");
String datum3 = (sdf3.format(cal3.getTime()));
String datei = ("load."+datum+".csv");
try{
file = new LineNumberReader( new FileReader("G:/AFUSS/Workspace/load."+datum3+".log"));
writer = new FileWriter("G:/AFUSS/Workspace/load."+datum+".csv");
System.out.println("Zeile:\tZeit:\t\t\tWert-1\t\t\tWert-2\t\t\tWert-3\n");
while ((line = file.readLine()) != null){
String c = (line.replaceAll(",", ";" ));
writer.write(Character.LINE_SEPARATOR);
writer.write(c);
String[] spalten = c.split(";");
int laenge = file.getLineNumber();
String spA = (spalten[0]); // ZEIT IN MINUTEN - TEILEN IN 24 TEILE!!!
String spB = (spalten[1]); // WERTE - 1 - TEILEN IN 24 TEILE!!!
String spC = (spalten[2]); // WERTE - 2 - TEILEN IN 24 TEILE!!!
String spD = (spalten[3]); // WERTE - 3 - TEILEN IN 24 TEILE!!!
boolean loop = true;
while(loop){
if (laenge <= 60){
double a = Double.parseDouble(spB);
String string = a+",";
System.out.println(string);
loop = false;
}else break;
}
}
System.out.println("\nDie Datei: "+datei+" wurde erfolgreich erstellt!");
writer.close();
}catch (IOException e){
System.out.print("Die Datei konnte nicht gefunden werden!");
}
String b[] = {"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15",
"16","17","18","19","20","21","22","23","24",}; // NICHT ÄNDERN!!!!!
double w[] = {a};
TagesSicht ts = new TagesSicht(w,b,"Uhrzeit in Std.","Werte 1",0);
ts.show();
}
}
Hier meine TAGESSICHT-KLasse:
package Diagramm;
import java.awt.*;
public class TagesSicht extends Frame{
private static final long serialVersionUID = 1L;
Leinwand zeich;
double werte[];
String texte[];
String beschriftungXAchse;
String beschriftungYAchse;
static int i = 0;
int diagrammTyp;
public static void main (String[] args){
Arrays a = new Arrays();
a.Daten();
}
/** Konstruktor */
public TagesSicht(double[] diagrWerte, String[] diagrTexte, String xBeschrift, String yBeschrift, int diagrTyp){
//Werte setzen
werte = diagrWerte;
texte = diagrTexte;
beschriftungXAchse = xBeschrift;
beschriftungYAchse = yBeschrift;
diagrammTyp = diagrTyp;
init();
}
public void init(){
setTitle("Balkendiagramm-Tagesübersicht-Aktivitäten");
Button weg = new Button("Fenster schließen");
weg.addActionListener(new FensterZu());
zeich = new Leinwand();
Panel unten = new Panel();
unten.setBackground(Color.gray);
unten.setLayout(new FlowLayout());
unten.add(weg);
setLayout(new BorderLayout());
add(zeich,BorderLayout.CENTER);
add(unten,BorderLayout.SOUTH);
pack();
}
class Leinwand extends Canvas{
private static final long serialVersionUID = 1L;
public void paint(Graphics g){
//Zeichenbefehle
g.setFont(new Font("Tahoma", Font.PLAIN, 9));
g.translate(100,330);
int abstand = 0;
int xAbstand;
if(werte.length > 1)
xAbstand = (int)Math.round(400D / (werte.length - 1));
else
xAbstand = 0;
//senkrechte Linien
g.setColor(new Color(255,255,255));
int xWerte[] = new int[werte.length + 2];
for(i = 0; i < werte.length; i++){
g.drawLine(i * xAbstand, 0, i * xAbstand, -250);
xWerte = i * xAbstand;
}
xWerte = xWerte[i - 1];
xWerte[i + 1] = 0;
//y-Werte
//max berechnen
double max = werte[0];
for(i = 0; i < werte.length; i++)
max = Math.max(max, werte);
if(max < 0) max = 0; //sonst Fehler
double min = werte[0];
for(i = 0; i < werte.length; i++)
min = Math.min(min, werte);
double einheitenJePixel;
if(min < 0)
einheitenJePixel = (max+Math.abs(min)) / 250D;
else
einheitenJePixel = max / 250D; //Einheiten je 1px ausrechnen
//wenn es negative Werte gibt --> x-Achse entsprechend verschieben
if(min < 0)
g.translate(0,(int)Math.round(min / einheitenJePixel));
//Beschriftungen
///max neu ausrechnen, falls negativ
for(i = 0; i < werte.length; i++)
max = Math.max(max, werte);
g.setColor(Color.black);
g.drawString("" + max, - 45, (int)((-1) * max / einheitenJePixel));
g.drawString("" + min, - 45, (int)((-1) * min / einheitenJePixel));
//y-Werte aus Werte/eJePx berechnen -1
int yWerte[] = new int[werte.length + 2];
for(i = 0; i < werte.length; i++)
yWerte = (-1) * (int)Math.round(werte / einheitenJePixel);
yWerte = 0;
yWerte[i + 1] = 0;
g.setColor(Color.orange);
abstand = (int)Math.round((400D-15D) / werte.length);
if(abstand < 2) abstand = 5; //mind. 1px Balkenbreite, mind. 1px Abstand zwischen Balken
xWerte[0] = 10;
for(i = 1; i < werte.length; i++)
xWerte = xWerte[i-1] + abstand;
for(i = 0; i < werte.length; i++){
if(yWerte > 0)
g.fill3DRect(xWerte, 0, abstand / 2, Math.abs(yWerte), true);
else
g.fill3DRect(xWerte, yWerte, abstand / 2, Math.abs(yWerte), true);
}
//Beschriftungen
g.setColor(Color.black);
for(i = 0; i < werte.length; i++){
int q = 15;
if(werte >= 0)
q = 15;
else q = -5;
g.drawString(texte ,xWerte, q);
}
//Koordinatenkreuz
//x-Achse
g.drawLine(-5, 0, 410, 0);
g.drawLine(405, -2, 410, 0);
g.drawLine(405, 2, 410, 0); //Pfeilspitze
g.drawString(beschriftungXAchse, 415, 0);
//wenn es negative Werte gibt --> x-Achse entsprechend verschieben
if(min < 0)
g.translate(0, (-1) * (int)Math.round(min / einheitenJePixel));
//y-Achse
g.drawLine(0, 5, 0, -270);
g.drawLine(-2, -265, 0, -270);
g.drawLine(2, -265, 0, -270); //Pfeilspitze
g.drawString(beschriftungYAchse, -25 ,-275);
}
public Dimension getMinimumSize(){ //Fenstergröße
return new Dimension(600, 400);
}
public Dimension getPreferredSize(){
return getMinimumSize();
}
}
//Methoden zum Setzen der Werte für das Diagramm
public void setBeschriftungXAchse(String xBeschriftung){
beschriftungXAchse = xBeschriftung;
}
public void setBeschriftungYAchse(String yBeschriftung){
beschriftungYAchse = yBeschriftung;
}
public void setWerte(double [] diaWerte){
werte = diaWerte;
}
public void setTexte(String [] diaTexte){
texte = diaTexte;
}
}
Please help...