G
Guest
Gast
Salü Miteinander,
Ich habe folgendes Problem ich zeichne ein Diagramm welches alle ca. 200ms neu gezeichnet werden soll.
Zur Zeit wird es folgendermassen gezeichnet:
Nun das Problem ist das teilweise mehrere Linien auf dem Diagramm gezeichnet sind, welche dann schnell wieder verschwinden.
Nun weiss ich nicht ob das Problem darin liegt das ich jeweils bei jedem Aufruf einen neuen PaintListener erstelle?
kann mir jemand helfen??
Falls nicht alles klar ist, fragt doch einfach...
thx
Ich habe folgendes Problem ich zeichne ein Diagramm welches alle ca. 200ms neu gezeichnet werden soll.
Zur Zeit wird es folgendermassen gezeichnet:
Code:
LineChart.paintChart(requestPerMin, saveRequestTimes, countUrls); // Hier wird die Methode von einer anderes Klasse aus aufgerufen
Code:
public void initialize(Composite parent) { // Wird bereits beim Starten der Applikation aufgerufen
canvas = new Canvas(parent, SWT.FLAT);
canvas.setBounds(0, 265, 730, 350);
}
public void paintChart(final long requestPerMin,
final List saveRequestTimes, int countUrls) { // Wird alle ca. 200ms aufgerufen um die neusten Werte anzuzeigen
canvas.redraw();
canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
gcEvent = e.gc;
gcEvent.drawRectangle(20, 15, 700, chartHeight);
setContents();
}
});
}
public void setContents() {
oneMiliSecInPix = 300 / (float) (maxTime - minTime); // hier wird eine Mili sekunde in Pixel gerechnet
pointEndLine = 27;
pointStartLine = 0;
for (int i = 1; i < saveRequestTime.size(); i++) { // Hier wird mit den Werten in der Array List saveRequestTime jeweils die ganze Linie in dem Diagramm gezeichnet
pointStartLine = pointEndLine - 7;
gcEvent.drawLine(pointStartLine, (int) (((float) (maxTime - (Long) saveRequestTime.get(i - 1)) * oneMiliSecInPix) + 15),
pointEndLine, (int) (((float) (maxTime - (Long) saveRequestTime.get(i)) * oneMiliSecInPix) + 15)); // Hier werden die Zeiten aus dem Array umgerechnet und ausgegeben
pointEndLine += 7;
}
}
Nun das Problem ist das teilweise mehrere Linien auf dem Diagramm gezeichnet sind, welche dann schnell wieder verschwinden.
Nun weiss ich nicht ob das Problem darin liegt das ich jeweils bei jedem Aufruf einen neuen PaintListener erstelle?
kann mir jemand helfen??
Falls nicht alles klar ist, fragt doch einfach...
thx