Verwenden Sie die JavaFX-Diagramm-API, um ein Diagrammbild zu zeichnen

8

Ich möchte nur ein Diagrammbild aus der JavaFX-Diagramm-API generieren. Ich möchte das App-Fenster nicht anzeigen oder die Anwendung starten (wenn es nicht notwendig ist).

%Vor%

Innerhalb der Start-Methode muss ich tatsächlich auf externe Daten zugreifen, um die Serien-Daten aufzubauen, aber es scheint keine Möglichkeit zu geben, auf externe Daten von der Start-Methode zuzugreifen, wenn ich die Daten innerhalb der Member-Variable data abspeichere. Es ist null, wenn der Start aufgerufen wird. Ich interessiere mich eigentlich nicht für Bühnen- und Szenenobjekte, solange das Diagrammbild gerendert werden kann, wie soll ich das Problem lösen? Ich möchte eine API erstellen, die mit Eingabedaten aufgerufen werden kann und das Diagramm mit den Daten zeichnen und die Datei zurückgeben.

%Vor%     
Sawyer 28.09.2016, 06:23
quelle

2 Antworten

6

Sie müssen kein Stage anzeigen, aber das Node muss an ein Scene angehängt werden. Aus der Dokument von snapshot :

  

HINWEIS: Damit CSS und Layout korrekt funktionieren, muss der Knoten   Teil einer Szene sein (die Szene kann an eine Bühne angehängt sein, muss aber nicht)   sei).

Eine Einschränkung zum Ändern von Scene besteht darin, dass sie auf dem J avaFX-Anwendungsthread ausgeführt werden muss, was Voraussetzung dafür ist, dass das JavaFX-Toolkit sein muss initialisiert.

Die Initialisierung kann durch Erweitern der Klasse Application erfolgen, wobei die Methode launch dies für Sie erledigt, oder Sie können eine neue JFXPanel -Instanz auf dem Swing Event Dispatcher-Thread .

Wenn Sie Application erweitern und Code in der start -Methode ausführen, wird sichergestellt, dass dieser Code auf dem JavaFX Application Thread ausgeführt wird. Andernfalls können Sie den Platform.runLater(...) block von einem anderen Thread aufgerufen, um das gleiche sicherzustellen.

Hier ist ein mögliches Beispiel:

Die Klasse bietet eine statische Methode zum Zeichnen eines Diagramms in eine Datei und gibt% code_% oder File zurück, wenn die Erstellung erfolgreich war oder nicht.

Bei dieser Methode wird das JavaFX Toolkit initialisiert, indem ein null auf dem Swing EDT erstellt wird und die Erstellung des Diagramms erfolgt JavaFX Application Thread . Zwei boolesche Werte werden in der Methode verwendet, um zu speichern, dass die Operation abgeschlossen und erfolgreich ist.

Die Methode kehrt erst zurück, wenn das vervollständigte Flag auf "true" wechselt.

Hinweis: Dies ist wirklich nur ein (funktionierendes) Beispiel, das sehr verbessert werden könnte.

%Vor%

und eine mögliche Verwendung

%Vor%

und das generierte Bild (charttest.png)

    
DVarga 28.09.2016 08:09
quelle
1

Von der Befehlszeile:

%Vor%

Weiter: Säubern und erstellen Sie Ihr Programm. Dann: Finden Sie Ihre JAR-Datei in Ihrem Dist-Ordner Danach: Navigieren Sie über Ihre Eingabeaufforderung zum Ordner dist, in dem sich Ihr Jar befindet. Dann führe: java -jar PieChartSample.jar Banana 14 Orange 20 Grape 15

Ergebnisse: Befindet sich im selben Ordner wie Ihre PieChartSample.jar-Datei

    
Sedrick 21.10.2016 14:32
quelle

Tags und Links