Guten Tag,
JFreeChart ist für mich eine unendliche Baustelle, und ich hoffe ihr könnt mir ein weiteres mal helfen ???:L
Folgendes:
Klasse erstellt Diagramm, klasse setzt das Background Image.
Main führt Klasse aus:
Alles funktioniert, auch das Background Image wird gesetzt.. ABER:
Nur, sobald ich in dem Tab, wo es angezeigt werde irgendwo hinklicke.
Es reicht nicht, das Tab anzuklicken, es muss irgendwo in dem Panel hingeklickt werden, und tadaa:
Bild wird geladen, alles funktioniert einwandfrei.
(Es ist völlig egal, was ich mache, Hauptsache irgendwas passiert in diesem Tab, aber es muss auch IN diesem Tab passieren)
Nun habe ich versucht in meiner main Methode einfach jedesmal, sobald das Diagramm aktualisiert wird einmal kurz rein & raus zu zoomen in das Diagramm (Ich weiß, etwas schäbig, aber das schickt für das Schulprojekt denke ich), jedoch ohne Erfolg
repaint habe ich auch schon versucht, aber das scheint nutzlos..
Mein Lehrer hat drüber geschaut und meinte es könnte ein Focus Problem sein, aber Hilfe zur Problemlösung war das für mich nun wirklich nicht.
In der Hauptklasse ist dann folgendes
Hilft aber nicht(das ist so kompiliziert geschrieben, weil ich testete, ob validate eine verbesserung bringt, repaint selbes ergebnis).
Ich hoffe ihr könnt mir bei der Problemsuche behilflich sein..
Liebe grüße
JFreeChart ist für mich eine unendliche Baustelle, und ich hoffe ihr könnt mir ein weiteres mal helfen ???:L
Folgendes:
Klasse erstellt Diagramm, klasse setzt das Background Image.
Main führt Klasse aus:
Alles funktioniert, auch das Background Image wird gesetzt.. ABER:
Nur, sobald ich in dem Tab, wo es angezeigt werde irgendwo hinklicke.
Es reicht nicht, das Tab anzuklicken, es muss irgendwo in dem Panel hingeklickt werden, und tadaa:
Bild wird geladen, alles funktioniert einwandfrei.
(Es ist völlig egal, was ich mache, Hauptsache irgendwas passiert in diesem Tab, aber es muss auch IN diesem Tab passieren)
Nun habe ich versucht in meiner main Methode einfach jedesmal, sobald das Diagramm aktualisiert wird einmal kurz rein & raus zu zoomen in das Diagramm (Ich weiß, etwas schäbig, aber das schickt für das Schulprojekt denke ich), jedoch ohne Erfolg
repaint habe ich auch schon versucht, aber das scheint nutzlos..
Mein Lehrer hat drüber geschaut und meinte es könnte ein Focus Problem sein, aber Hilfe zur Problemlösung war das für mich nun wirklich nicht.
Java:
public ChartPanel createChartPanel(String name, int comboboxItem, int Farbe){
DatenbankAbfragen t2 = new DatenbankAbfragen();
DiagrammErsteller DDD = new DiagrammErsteller();
DateAxis dt = DDD.datumsAchse();
XYPlot x = new XYPlot();
Image image1 =Toolkit.getDefaultToolkit().createImage("C:/Users/xxx/Desktop/Helligkeit.jpg");
Image image2 =Toolkit.getDefaultToolkit().createImage("C:/Users/xxx/Desktop/Temperatur.jpg");
Image image3 =Toolkit.getDefaultToolkit().createImage("C:/Users/xxx/Desktop/Luftfeuchtigkeit.jpg");
Image image4 =Toolkit.getDefaultToolkit().createImage("C:/Users/xxx/Desktop/Luftdruck.jpg");
Image image = Toolkit.getDefaultToolkit().createImage("C:/Users/xxx/Desktop/error.png");
String row="";
String xAxisbeschreibung="";
if (name.equals("Helligkeit")){
row = "Helligkeit";
xAxisbeschreibung = "Helligkeit in Lux";
image = image1;
} else if (name.equals("Temperatur")){
row = "Temperatur";
xAxisbeschreibung = "Temperatur in °C";
image = image2;
} else if (name.equals("Luftfeuchtigkeit")) {
row = "Luftfeuchtigkeit";
xAxisbeschreibung = "Luftfeuchtigkeit in %";
image = image3;
} else if (name.equals("Luftdruck")){
row = "Luftdruck";
image = image4;
xAxisbeschreibung = "Luftdruck in milliBar";
}
try
{
x = new XYPlot(DDD.data(t2.wert(row,comboboxItem),row), dt, DDD.wertAchse(xAxisbeschreibung), DDD.itemRender(Farbe));
x.setDomainGridlinePaint(Color.blue);
x.setBackgroundImage(image);
}
catch(SQLException e)
{
//
e.printStackTrace();
}
JFreeChart c = new JFreeChart(row, new Font("Tahoma",2,22), x, true);
ChartPanel cp = new ChartPanel(c);
return cp;
}
In der Hauptklasse ist dann folgendes
Java:
cpLF = DDD.createChartPanel("Luftfeuchtigkeit",comboBox.getSelectedIndex(), 0);
tab.add(cpLF);
cpLF.validate();
Hilft aber nicht(das ist so kompiliziert geschrieben, weil ich testete, ob validate eine verbesserung bringt, repaint selbes ergebnis).
Ich hoffe ihr könnt mir bei der Problemsuche behilflich sein..
Liebe grüße