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.
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)
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