Frage

Ich war in der Lage Echtzeit-Maus Verfolgung wie folgt umzusetzen:

alt text

Der Quellcode ist wie folgt:

http://jstock.cvs.sourceforge.net/viewvc/jstock/jstock/src/org/yccheok/jstock/charting/CrossHairUI.java?revision=1.5&view=markup

http://jstock.cvs.sourceforge.net/viewvc/jstock/jstock/src/org/yccheok/jstock/gui/ChartJDialog.java?revision=1.9&view=markup

jedoch nicht in der Lage I zu erhalten die korrekte y Bildschirmkoordinate, wenn ein subplot hinzugefügt wird.

(gebrochenes Bild)

Ich vermute, dass ich nicht den richtigen Bildschirmdatenbereich erhalten habe.

Wenn nur ein Grundstück auf dem Bildschirm ist, erhalte ich eine Bildschirmdatenbereich mit einer Höhe von 300 ++

Wenn ein Teilstück auf die Unterseite hinzugefügt erwarte ich, dass Bildschirm-Datenbereich der Höhe reduziert werden, aufgrund der Höhe des neu hinzugekommenen subplot besetzt.

Allerdings habe ich keine Ahnung, wie der richtigen Bildschirmdatenbereich für das erste Grundstück zu erhalten.

final XYPlot plot = (XYPlot) cplot.getSubplots().get(0);

// Shall I get _plotArea represents screen for getSubplots().get(0)?
// How?
// I try
//
// chartPanel.getScreenDataArea(0, 0);
// chartPanel.getScreenDataArea(0, 1);
// chartPanel.getScreenDataArea(1, 0);
// chartPanel.getScreenDataArea(1, 1);
//
// All returned null

// OK. I suspect this is causing me unable to get the correct screen y coordinate
// I always get the same _plotArea, although a new sub plot had been added.
final Rectangle2D _plotArea = chartPanel.getScreenDataArea();

final RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge();

final double yJava2D = rangeAxis.valueToJava2D(yValue, _plotArea, rangeAxisEdge);
War es hilfreich?

Lösung

Hier ist die Code-Schnipsel des richtigen Rechteck nach Tauchgang in JFreeChart Quellcode zu erhalten.

/* Try to get correct main chart area. */
final Rectangle2D _plotArea = chartPanel.getChartRenderingInfo().getPlotInfo().getSubplotInfo(0).getDataArea();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top