Swing JFreechart zoom x-achse neue Werte

MarioW1986

Bekanntes Mitglied
Hallo, ich habe ein JFreechart (XYSeriesCollection) welches mit meine Werte anzeigt. Darunter habe ich einen JSlider positioniert, der die gleiche Skallierung wie die x-Achse hat. Jetzt möchte ich mit der Maus in das Chart reinzoomen (Standardfunktion). Wie bekomme ich die neuen Werte der X-Achse, um damit meinen JSlider neu zu füllen?

Ich weiß nicht mal genau wonach ich suchen muss. Welcher Listener wird denn ausgeführt beim Zoomen?

Ein kleinens Beispiel würde weiterhelfen oder einfach ein Link wo ich das nachlesen kann.

Gruß
 

Harry Kane

Top Contributor
Mit dem reinzoomen wird letzten Endes der Wertebereich einer oder mehrerer Achsen geändert. Die Achsen reagieren darauf mit dem Abfeuern eines AxisChangeEvents. Diesen wiederum registriert der Plot und sendet seinerseits einen PlotChangeEvent usw.
Wenn du dieses Event abfangen willst, würde ich an den Plot eine PlotChangeListener hängen und jedesmal, wenn ein PlotChangeEvent abgesetzt wird, den Wertebereich der Achse abfragen. Dazu muss der PlotChangeListener eine Referenz auf die Achse haben (um den Wert abzufragen), und auf den JSlider (um den neuen Wert zu setzen).
 

MarioW1986

Bekanntes Mitglied
Ich versuche mir das gerade zusammenzubauen. Leider stoße ich bereits beim Verständnis an ein Problem. Ich habe jetzt meinem Plot ein ChangeListener angehängt. In diesem setze ich die Werte in meinem Slider. in dem AxisChangeEvent lese ich die neuen Werte aus. aber dieser wird niemals aufgerufen. Sicherlich weil ich diesen Listener nirgendwo angehängt habe. Aber auch weil ich gar nicht weiß wo genau. MAch ich das dann an der xAchse oder an beiden Achsen?
 

Harry Kane

Top Contributor
Du kannst sowhl über den PlotChangeEvent als auch über den AxisChangeEvent an die Achse kommen, deren neuen Wertebereich du abfragen willst. Hier ein Beispiel:
Java:
public class XYPlotDemo {

    public static void main(String[] args) {
        XYPlot plot = new XYPlot(new DefaultXYDataset(), new NumberAxis("x"), new NumberAxis("y"), new XYLineAndShapeRenderer());
        plot.addChangeListener(new PlotChangeListener() {
            public void plotChanged(PlotChangeEvent pce) {
                Plot p = pce.getPlot();
                if (p instanceof XYPlot) {
                    XYPlot xyp = (XYPlot) p;
                    System.out.println("In plotChanged, range: " + xyp.getDomainAxis().getRange());
                }
            }
        });
        plot.getDomainAxis().addChangeListener(
                new AxisChangeListener() {
                    public void axisChanged(AxisChangeEvent ace) {
                        Axis a = ace.getAxis();
                        if (a instanceof ValueAxis) {
                            ValueAxis va = (ValueAxis) a;
                            System.out.println("In axisChanged, range: " + va.getRange());
                        }
                    }
                });

        JFrame frame = new JFrame();
        frame.getContentPane().add(new ChartPanel(new JFreeChart(plot)));
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}
 

MarioW1986

Bekanntes Mitglied
Ok danke, wenn ich die neuen Werte aber jetzt nicht ausgeben möchte sondern setzen. Dann komme ich doch in eine Endlosschleife oder`nicht?
Weil so weit war ich zwischenzeitlich auch schon. Bin dann aber wieder gescheitert.
Hab jetzt mal deine Variante genommen:

@Override
public void plotChanged(PlotChangeEvent pl) {
int up, low;
Plot p = pl.getPlot();
if (p instanceof XYPlot) {
XYPlot xyp = (XYPlot) p;
up = (int) xyp.getDomainAxis().getRange().getUpperBound();
low = (int) xyp.getDomainAxis().getRange().getLowerBound();
setzeKomponenten.fPlot[0].getDomainAxis().setLowerBound(low);
setzeKomponenten.fPlot[0].getDomainAxis().setUpperBound(up);
}
}

Ergebnis ist wieder ein Stackoverflow. Für mich logischerweise weil ich nach dem auslesen die Werte neu setze und somit wieder in dieses event komme. Wie muss ich das denn sonst amchen?


AHHHH oh man schon gut. ICh hab mich grade gefragt warum ich die nochmal setzen will. ist ja alles schon gesetzt^^ sry, vergiss diese Frage einfach.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JFreechart Zoom out AWT, Swing, JavaFX & SWT 2
C JFreeChart X-Achse Werte skalieren, begrenzen, zoomen AWT, Swing, JavaFX & SWT 5
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H JFreeChart Charts überlagern AWT, Swing, JavaFX & SWT 2
C JFreeChart x-Achse mit absteigenden Werten AWT, Swing, JavaFX & SWT 1
K JFreeChart nicht ohne BarChartDemo startklar? AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
N jFreeChart einzelne Punkte anwählen und Formatieren AWT, Swing, JavaFX & SWT 0
B JFreeChart Gantt Höhe Tasks AWT, Swing, JavaFX & SWT 1
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
V JFreechart: In Linechart Linien einzeichnen und Bereiche färben AWT, Swing, JavaFX & SWT 4
M In JFreeChart Geraden erzeugen AWT, Swing, JavaFX & SWT 11
M Swing JFreechart X-Achse Tick auslesen AWT, Swing, JavaFX & SWT 13
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Diagramm mit jfreechart quadratisch erstellen AWT, Swing, JavaFX & SWT 1
D JFreeChart range der Y Achse verändern. AWT, Swing, JavaFX & SWT 1
G JFreeChart - SetSeriesColor Problem AWT, Swing, JavaFX & SWT 3
K 2D-Grafik JFreeChart plot.setBackgroundImage() AWT, Swing, JavaFX & SWT 1
K 2D-Grafik JFreeChart DateAxis AWT, Swing, JavaFX & SWT 9
T Event Handling JFreeChart Update AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
Farbtopf Live update JFreeChart AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
D JFreeChart - aktuelle code beispiele AWT, Swing, JavaFX & SWT 11
M JFreeChart in ein File schreiben (bzw. JFrame in ein File Schreiben) AWT, Swing, JavaFX & SWT 2
A JFreeChart in GUI AWT, Swing, JavaFX & SWT 3
E JFreeChart: Timeseries-Chart und Area-Chart "überlappen" lassen AWT, Swing, JavaFX & SWT 6
B JFreeChart-Erweiterungen AWT, Swing, JavaFX & SWT 4
E JFreeChart in einer dynamischen Aufzeichnung neue Serien hinzufügen? AWT, Swing, JavaFX & SWT 7
I XML - JFreeChart AWT, Swing, JavaFX & SWT 15
N Dynamische JFreechart updated UI nicht AWT, Swing, JavaFX & SWT 5
S JFreeChart - Schriftgröße der Legende AWT, Swing, JavaFX & SWT 2
O Swing JFreechart subtitle formatieren AWT, Swing, JavaFX & SWT 3
N JFreeChart: Plot soll mit skalieren AWT, Swing, JavaFX & SWT 5
R JFreeChart Plots AWT, Swing, JavaFX & SWT 6
J JFreechart spezielles Balkendiagramm AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
T JFreeChart Linine einzeichnen AWT, Swing, JavaFX & SWT 2
M JFreeChart Ausrichtung der Balken AWT, Swing, JavaFX & SWT 2
R jFreeChart in eine NetBeans Projekt integrieren AWT, Swing, JavaFX & SWT 24
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
A Swing JFreeChart, Gantt, Schichtplan AWT, Swing, JavaFX & SWT 3
R JFreeChart Skalierung zur Laufzeit ändern AWT, Swing, JavaFX & SWT 7
F Wie lade ich eine CategoryDataset aus XML ins JFreeChart? AWT, Swing, JavaFX & SWT 9
J JFreeChart - mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
A JFreeChart: 2 X-Achsen für ein Dataset AWT, Swing, JavaFX & SWT 2
T JFreeChart export Problem AWT, Swing, JavaFX & SWT 4
S JFreeChart Achse immer sichtbar AWT, Swing, JavaFX & SWT 2
D JFreechart maximalangezeigter Wertebereich AWT, Swing, JavaFX & SWT 3
B AWT [JFreeChart] malt nicht so wie ich will :-( AWT, Swing, JavaFX & SWT 2
B JFreeChart Balkendiagramm ActionEvent AWT, Swing, JavaFX & SWT 2
L Labels sichtbar - JFreeChart AWT, Swing, JavaFX & SWT 5
A Schachbrettartiges Diagramm mit JFreeChart AWT, Swing, JavaFX & SWT 4
E JFreeChart AWT, Swing, JavaFX & SWT 2
L Gantt Chart - JFreeChart AWT, Swing, JavaFX & SWT 5
K JFreeChart im JScrollPane ausblenden AWT, Swing, JavaFX & SWT 2
L JFreeChart Labelrotation AWT, Swing, JavaFX & SWT 2
L JFreeChart Farbe von Balken AWT, Swing, JavaFX & SWT 5
L JFreeChart Balkenanordnung AWT, Swing, JavaFX & SWT 10
L JFreeChart Achsenskalierung AWT, Swing, JavaFX & SWT 4
L JFreeChart - Dataset befüllen AWT, Swing, JavaFX & SWT 2
L JFreeChart - Line Shapes AWT, Swing, JavaFX & SWT 15
N JFreeChart - Basics AWT, Swing, JavaFX & SWT 2
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
L JFreeChart - Legende vertikal AWT, Swing, JavaFX & SWT 5
L JFreeChart - Linienstärke einstellen AWT, Swing, JavaFX & SWT 2
L JFreeChart Einstellungen AWT, Swing, JavaFX & SWT 22
L JFreeChart - Gitterfarbe schwarz AWT, Swing, JavaFX & SWT 4
L JFreeChart StackedBar + Line-Chart kombinieren AWT, Swing, JavaFX & SWT 4
L JFreeChart - Performance bei PNG-Erstellung AWT, Swing, JavaFX & SWT 5
L JFreeChart - Legende beliebig positionieren AWT, Swing, JavaFX & SWT 16
G JFreechart Balken einfärben AWT, Swing, JavaFX & SWT 6
F Probleme mit NumberAxis bei JFreeChart AWT, Swing, JavaFX & SWT 5
G jfreechart (Diagramm speichern mit ein vorgegebenen Namen) AWT, Swing, JavaFX & SWT 6
S JFreeChart neu zeichnen sich das Datenset geändert hat. AWT, Swing, JavaFX & SWT 4
K JFreeChart Eigentschaften des Charts ändern AWT, Swing, JavaFX & SWT 8
G JFreeChart und das updaten AWT, Swing, JavaFX & SWT 7
G Ausser Jfreechart, Chart Programme? AWT, Swing, JavaFX & SWT 11
S Dimensionen JFreeChart AWT, Swing, JavaFX & SWT 5
S JFreeChart Stufendiagramm AWT, Swing, JavaFX & SWT 2
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
K JFreeChart: Platz zwischen Balken AWT, Swing, JavaFX & SWT 3
M JFreeChart Handbuch? AWT, Swing, JavaFX & SWT 8
P JFreeChart - TimeSeriesDiagram AWT, Swing, JavaFX & SWT 2
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
T JavaFX Zoom in ScrollPane AWT, Swing, JavaFX & SWT 1
D Zoom zur Mouseposition in ScrollPane AWT, Swing, JavaFX & SWT 5
B jLabel zoom AWT, Swing, JavaFX & SWT 2
Developer_X Swing Graphics2D.zoom, wie rückgängig machen? AWT, Swing, JavaFX & SWT 6
Dragonfire Swing Zoom-Vorgang optimieren [BufferedImage] AWT, Swing, JavaFX & SWT 2
Dragonfire Swing Zoom mit JPanel und repaint() ... AWT, Swing, JavaFX & SWT 3
E Bild effektiv vergrössern / verkleinern (zoom) AWT, Swing, JavaFX & SWT 23
T Zoom AWT, Swing, JavaFX & SWT 3
F ZOOM Funktion in JTextPane AWT, Swing, JavaFX & SWT 6
D Zoom problem!!! (brauche screenshot...) plz help thx AWT, Swing, JavaFX & SWT 7
B JavaFX LineChart mit Date-x-Achse AWT, Swing, JavaFX & SWT 1
B JavaFX Bild um die eigene Achse drehen lassen AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben