2012-10-25 10 views
10

Ich versuche, Echtzeit-Diagramm mit Zeitachse zu plotten, aber ich habe festgestellt, LineChart Konstruktor hat nur die Signatur.JavaFX Echtzeit-LineChart mit Zeitachse

LineChart(Axis<X> xAxis, Axis<Y> yAxis) 

Ich denke, Jfreefield in javafx einbetten ist keine richtige Lösung.

Ich möchte ein paar der jfree Funktionen in einem Javafx LineChart, ist das möglich?

+1

Fantastische Frage! Nützliche Antwort! Schreckliche Moderatoren! Warum schließen Sie vollkommen gute Fragen mit gültigen Antworten ab? Ich bin nur froh, dass bei Suchanfragen immer noch geschlossene Fragen auftauchen. –

Antwort

18

herunterladen Ensemble Probe von http://www.oracle.com/technetwork/java/javafx/samples/index.html

Es gibt mehrere Beispiele in der es für dynamische Diagramme, z.B. "Advanced Stock Liniendiagramm". Sie können sich den Quellcode direkt in der Anwendung ansehen.

enter image description here

Um Zeit auf Achse zeigen Sie Zeichenfolge und DateFormatter verwenden können:

BarChart<String, Number> chart = new BarChart<>(new CategoryAxis(), new NumberAxis()); 

    final XYChart.Series<String, Number> series1 = new XYChart.Series<>(); 
    chart.getData().addAll(series1); 

    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); 
    Date date = new Date(); 
    for (int i = 0; i <= 10; i += 1) { 
     date.setTime(date.getTime() + i * 11111); 
     series1.getData().add(new XYChart.Data(dateFormat.format(date), Math.random() * 500)); 
    } 
+1

Ja, dieser Code ist in Ordnung, aber das Problem ist, ich möchte die Echtzeit anstelle der inkrementellen Werte in der Zeitachse zeigen !!! –

+0

siehe aktualisierte Antwort –

+1

genau ... das ist, was ich will –

0

Die Klasse org.jfree.chart.demo.TimeSeriesChartDemo1 ist im Lieferumfang enthalten. Es ist in der demo abgebildet, und seine source veranschaulicht die Verwendung der Factory-Methode ChartFactory.createTimeSeriesChart(). Es gibt ein verwandtes Beispiel here.

+0

hay was hast du vorgeschlagen ?? Ich verstehe nicht .... –

+1

Ich denke, Sie sollten 'createTimeSeriesChart()' verwenden. –

+0

@ ShantanuBanerjee: [tag: jfreechart] arbeitet mit [tag: javafx]; das Modell ändern, z. 'TimeSeries', und die Ansicht aktualisiert sich selbst. – trashgod