Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, ist es möglich, wenn ja wie, die Schrittweite in der x-Achse auszulesen? Ich bekomms nicht hin.
Meine X-Achse ist eine ValueAxis wenn das eine Hilfe ist.
Die Klasse ValueAxis hat auch keine Methode, um die Schrittweite auszulesen. Da die Klasse ValeuAxis abstract ist, verwendest du diese Klasse sicherlich nicht, sondern eine ihrer Unterklassen.
Wenn du eine NumberAxis verwendest, ist die Methode numberAxis.getTickUnit(), verwendest du eine DateAxis, ist es die Methode dateAxis.getTickUnit(). Du bekommst eine Instanz von NumberTickUnit oder DateTickUnit zurück, aus der mit getSize() den Wert abfragen kannst.
Wenn
Danke für die Antwort, ich versuche dass dann gleich mal. Passt jetzt nicht zum eigentlichen Thema aber ich hab trotzdem noch ne weitere Frage. Ich möchte gerne noch wenn ich den Slider bewege, dass in dem Chart an der Stelle wo der Slider steht, eine senkrechte Linie gezeichnet wird. Bewege ich den Slider, soll sich auch die Linie bewegen. Ist sowas auch möglich und welche Befehle gibts da bzw ein Beispiel zu Veranschaulichung wäre super wenns nicht zu viel verlangt ist.
So auf die Schnelle:
Schreibe dir einen ChangeListener und hänge den an den JSlider. Übergebe an den ChangeListener ausserdem noch einen ValueMarker, den du dem XYPlot als domain marker hinzufügst
Wenn der ChangeListener einen ChangeEvent vom JSlider abfängt, kannst du aus dem ChangeEvent die source bzw. den JSlider bekommen und daraus den value bestimmen. Da ein JSlider und das zugrunde liegende BoundedRangeModel nur mit int Werten umgehen können, musst du aus den Werten aus dem BoundedRangeModel noch einen passenden Fliesskommawert berechnen und den als Value des ValueMarkers setzen.
Also dass hab ich schon ohne deine Hilfe gerade rausgefunden. Trotzdem danke. Jetzt hab ich nur das Problem, dass mein Chart mit Markern vollgemalt wird. ICh möchte aber immer nur an der aktuellen SliderPosition den Strich gezeichnet bekommen. Hast du da auch noch ne Idee?
Wollte grade schreiben. Hab die Lösung gefunden: plot.clearDomainMarkers(); damit werden alle (in meinem Fall dann immer nur ein Marker) vom Plot gelöscht und der neue wird gezeichnet
Wen clearDomainMarkers die "Lösung" ist, legst du offenbar wirklich immer wieder neue ValueMarker an, anstatt bei ein und demselben Marker nur den Value zu verändern. Und das erzeugt unnötig overhead.
Ich glaube dein Vorschlag ist doch der Bessere, da ich auch noch ValueMarker benutze um bestimmte Zeitabschnitte abzugrenzen. Somit wären diese dann auch weg. Jetzt wollte ich in meinem ChangeListener des Sliders ein marker.setValue() aufrufen. Musste aber feststellen, dass es nur einen getter aber keinen Setter gibt. SChau ich jedoch in die API steht da dass es schon einen setter gibt. Was mache ich falsch?
Ich sage das. Wenn ich die Methode aufrufen möchte gibt es keine.
Momentan mache ich folgendes im ChangeListener:
marker = new ValueMarker(sliderAuswert.getValue());
marker.setPaint(Color.RED);
fPlot[0].clearDomainMarkers();
fPlot[0].addDomainMarker(marker);
Möchte ich marker.setValue aufrufen geht das nicht. Wo ist mein Fehler?
Entweder, dein letzter besuch beimn Augenarzt ist schon zu lange her, oder (*Kristallkugel an*)
du deklarierst die Variable marker nicht als ValueMarker sondern als Marker. Schlauerweise geht aus dienem Code nicht hervor, wie du marker deklariert hast.
Ich hab den marker mit static ValueMarker marker; angelegt und den Rest kennst du ja. Wenn ich Marker marker; mache dann hab ich ein Problem mit marker = new Marker() oder auch new ValueMarker(); ein setValue hab ich trotzdem nicht zur Verfügung. Mit Markern hatte ich noch nicht so viel zu tun. Daher stell ich mich vllt auch ein bisschen doof an^^
Also wenn du eine Variable marker als ValueMarker deklarierst und dir deine IDE trotzdem nicht die Methode setValue anbietet, ist entweder deine IDE Mist, oder die marker Variable ist eben NICHT als ValueMarker deklariert, warum auch immer.