de:javafx
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:javafx [2018/12/22 13:27] – [QuadCurve] roehner | de:javafx [2023/02/25 20:07] (aktuell) – roehner | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
JavaFX wird ab Version 14.0 vom Java-Editor unterstützt. Die Entwicklung dieser neuen grafischen Benutzeroberfläche für den Java-Editor hat viele Monate in Anspruch genommen. Doch ich denke, dass sich die Arbeit insgesamt gelohnt hat. Man kann nun mit einer zeitgemäßen GUI-Bibliothek arbeiten, die auch mit CSS gestaltet werden kann. Das Erstellen einer GUI-Oberfläche wird für Programmieranfänger noch leichter gemacht, weil der Objekt-Inspektor standardmäßig nur die wichtigsten Attribute von GUI-Komponenten anzeigt. Dadurch können die GUI-Komponenten deutlich leichter konfiguriert werden. Außerdem stehen jetzt grafische Grundfiguren wie Kreis, Rechteck und Vieleck zur Verfügung, womit sich auch im Unterricht einfacher GUI-Anwendungen mit grafischen Objekten gestalten lassen. | JavaFX wird ab Version 14.0 vom Java-Editor unterstützt. Die Entwicklung dieser neuen grafischen Benutzeroberfläche für den Java-Editor hat viele Monate in Anspruch genommen. Doch ich denke, dass sich die Arbeit insgesamt gelohnt hat. Man kann nun mit einer zeitgemäßen GUI-Bibliothek arbeiten, die auch mit CSS gestaltet werden kann. Das Erstellen einer GUI-Oberfläche wird für Programmieranfänger noch leichter gemacht, weil der Objekt-Inspektor standardmäßig nur die wichtigsten Attribute von GUI-Komponenten anzeigt. Dadurch können die GUI-Komponenten deutlich leichter konfiguriert werden. Außerdem stehen jetzt grafische Grundfiguren wie Kreis, Rechteck und Vieleck zur Verfügung, womit sich auch im Unterricht einfacher GUI-Anwendungen mit grafischen Objekten gestalten lassen. | ||
- | Beachten | + | Ab dem JDK 11 ist JavaFX nicht mehr im JDK enthalten und muss zusätzlich installiert werden. |
+ | |||
+ | Eine Dokumentation von JavaFX kann über https://www.oracle.com/technetwork/ | ||
{{: | {{: | ||
+ | |||
+ | Beachten Sie bitte, dass Sie in der Konfiguration unter // | ||
Gerhard Röhner\\ | Gerhard Röhner\\ | ||
Zeile 16: | Zeile 20: | ||
Eine Label-Komponente kann außer Text auch ein Bild oder Beides darstellen. | Eine Label-Komponente kann außer Text auch ein Bild oder Beides darstellen. | ||
Um ein Bild darzustellen wählt man im Objekt-Inspektor beim Attribut //Graphic// die gewünschte Bilddatei aus. | Um ein Bild darzustellen wählt man im Objekt-Inspektor beim Attribut //Graphic// die gewünschte Bilddatei aus. | ||
- | Dabei wird die ausgewählte Bilddatei automatisch in den Ordner //images// kopiert.\\ | + | Dabei wird die ausgewählte Bilddatei automatisch in den Ordner //images// kopiert. |
Beispiel: {{: | Beispiel: {{: | ||
Zeile 30: | Zeile 34: | ||
{{: | {{: | ||
<code java> | <code java> | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== NumberField ==== | ==== NumberField ==== | ||
{{: | {{: | ||
Zeile 46: | Zeile 48: | ||
<code java> | <code java> | ||
nfSumme.setDouble(Summe, | nfSumme.setDouble(Summe, | ||
- | \\ | ||
---- | ---- | ||
==== TextArea ==== | ==== TextArea ==== | ||
Zeile 59: | Zeile 60: | ||
<code java> | <code java> | ||
taAusgabe.appendText(" | taAusgabe.appendText(" | ||
- | \\ | ||
---- | ---- | ||
==== Button ==== | ==== Button ==== | ||
Zeile 76: | Zeile 76: | ||
Gibt man im Objekt-Inspektor im Attribut //Text// die Beschriftung eines Buttons ein, so wird automatisch ein passender Name für den Button erzeugt. | Gibt man im Objekt-Inspektor im Attribut //Text// die Beschriftung eines Buttons ein, so wird automatisch ein passender Name für den Button erzeugt. | ||
---- | ---- | ||
- | |||
==== CheckBox ==== | ==== CheckBox ==== | ||
{{: | {{: | ||
Zeile 84: | Zeile 83: | ||
{{: | {{: | ||
<code java> | <code java> | ||
- | \\ | ||
- | \\ | ||
---- | ---- | ||
- | + | ==== Buttongroup | |
- | ==== RadioButton & ToggleGroup | + | |
{{: | {{: | ||
- | RadioButtons bieten verschiedene Auswahlmöglichkeiten an, aus denen man eine Option auswählen kann.\\ | + | Eine Buttongroup gruppiert Radiobuttons oder Checkboxen. Setzen Sie das Attribut Checkboxes auf true, wenn Sie eine Gruppe von Checkboxen wünschen. Geben Sie Ihre Optionen mit dem Items-Attribut ein. |
- | Zur Gruppierung von RadioButtons muss man eine unsichtbare ToggleGroup-Komponente {{:de: | + | Für Radiobuttons fügt der Java-Editor diese Methode in den Quelltext ein: |
- | Den Namen dieser ToggleGroup-Komponenten gibt man bei jeder RadioButton-Komponente im Objekt-Inspektor beim Attribut // | + | |
- | Mit Hilfe der ToggleGroup kann man die ausgewählte Option ermitteln: | + | <code java> |
- | Beispiel: | + | Damit lässt sich dann ganz einfach die ausgewählte Option einer Buttongroup ermitteln. |
- | <code java>RadioButton gewählterRadioButton = (RadioButton) toggleGroup1.getSelectedToggle(); | + | <code java> |
- | String gewählt = gewählterRadioButton.getText(); </ | + | |
\\ | \\ | ||
---- | ---- | ||
- | |||
==== ListView ==== | ==== ListView ==== | ||
{{: | {{: | ||
Zeile 129: | Zeile 122: | ||
<code java> | <code java> | ||
int Zahl = Integer.parseInt(s);</ | int Zahl = Integer.parseInt(s);</ | ||
- | \\ | ||
---- | ---- | ||
==== ComboBox ==== | ==== ComboBox ==== | ||
Zeile 154: | Zeile 146: | ||
Um automatisch auf eine Eingabe oder Auswahl in einer ComboBox reagieren zu können, erstellt man im Objekt-Inspector eine Ereignismethode für //action//. | Um automatisch auf eine Eingabe oder Auswahl in einer ComboBox reagieren zu können, erstellt man im Objekt-Inspector eine Ereignismethode für //action//. | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== Spinner ==== | ==== Spinner ==== | ||
{{: | {{: | ||
Zeile 164: | Zeile 154: | ||
Zur Laufzeit kann man mit der Methode getValue() den aktuellen Wert abfragen: | Zur Laufzeit kann man mit der Methode getValue() den aktuellen Wert abfragen: | ||
- | <code java> | + | <code java> |
- | \\ | + | |
+ | Um direkt auf Änderungen eines Spinners zu reagieren, benutzt man das // | ||
---- | ---- | ||
- | |||
- | |||
- | |||
- | |||
- | |||
==== Canvas ==== | ==== Canvas ==== | ||
{{: | {{: | ||
Zeile 186: | Zeile 172: | ||
<code java> | <code java> | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== Turtle ==== | ==== Turtle ==== | ||
- | |||
{{: | {{: | ||
Zeile 199: | Zeile 182: | ||
Beispiel: | Beispiel: | ||
{{: | {{: | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== MenuBar ==== | ==== MenuBar ==== | ||
{{: | {{: | ||
Mit einer MenuBar-Komponente kann man eine Menüleiste erstellen. Die Menüleiste zeigt die Menüs (Menu-Komponenten) an, die ihr zugeordnet werden. | Mit einer MenuBar-Komponente kann man eine Menüleiste erstellen. Die Menüleiste zeigt die Menüs (Menu-Komponenten) an, die ihr zugeordnet werden. | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== Menu ==== | ==== Menu ==== | ||
{{: | {{: | ||
Zeile 215: | Zeile 194: | ||
Für jeden Menübefehl erzeugt der Java-Editor eine zugehörige Ereignismethode. | Für jeden Menübefehl erzeugt der Java-Editor eine zugehörige Ereignismethode. | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ContextMenu ==== | ==== ContextMenu ==== | ||
{{: | {{: | ||
Zeile 230: | Zeile 206: | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
- | |||
==== MenuButton ==== | ==== MenuButton ==== | ||
{{: | {{: | ||
Im Objekt-Inspektor gibt man unter // | Im Objekt-Inspektor gibt man unter // | ||
- | |||
- | \\ | ||
---- | ---- | ||
==== SplitMenuButton ==== | ==== SplitMenuButton ==== | ||
Zeile 246: | Zeile 216: | ||
Im Objekt-Inspektor gibt man unter // | Im Objekt-Inspektor gibt man unter // | ||
- | |||
- | \\ | ||
---- | ---- | ||
=====JavaFX Controls===== | =====JavaFX Controls===== | ||
Zeile 258: | Zeile 226: | ||
double value = slider1.getValue(); | double value = slider1.getValue(); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ProgressBar==== | ==== ProgressBar==== | ||
{{: | {{: | ||
Zeile 268: | Zeile 233: | ||
progressBar1.setProgress(0.3); | progressBar1.setProgress(0.3); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ProgressIndicator==== | ==== ProgressIndicator==== | ||
{{: | {{: | ||
Zeile 278: | Zeile 240: | ||
progressIndicator1.setProgress(0.75); | progressIndicator1.setProgress(0.75); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ToolBar==== | ==== ToolBar==== | ||
{{: | {{: | ||
Zeile 289: | Zeile 248: | ||
toolBar1.getItems().addAll(bNeu, | toolBar1.getItems().addAll(bNeu, | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Separator==== | ==== Separator==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ToggleButton==== | ==== ToggleButton==== | ||
{{: | {{: | ||
Zeile 305: | Zeile 258: | ||
if (toggleButton1.isSelected()) ... | if (toggleButton1.isSelected()) ... | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== PasswordField==== | ==== PasswordField==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ChoiceBox==== | ==== ChoiceBox==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Hyperlink==== | ==== Hyperlink==== | ||
{{: | {{: | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== HTMLEditor==== | ==== HTMLEditor==== | ||
{{: | {{: | ||
Zeile 333: | Zeile 275: | ||
String s = hTMLEditor1.getHtmlText(); | String s = hTMLEditor1.getHtmlText(); | ||
</ | </ | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== WebView==== | ==== WebView==== | ||
{{: | {{: | ||
Eine WebView-Komponente kann die Webseite zu einer Internetadresse anzeigen. Im Attribut //URL// des Objekt-Inspektors gibt man die Internetadresse mit Protokoll an, z.B. http:// | Eine WebView-Komponente kann die Webseite zu einer Internetadresse anzeigen. Im Attribut //URL// des Objekt-Inspektors gibt man die Internetadresse mit Protokoll an, z.B. http:// | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ColorPicker==== | ==== ColorPicker==== | ||
- | {{: | + | {{: |
Mit einer ColorPicker-Komponente kann man eine Farbe auswählen. | Mit einer ColorPicker-Komponente kann man eine Farbe auswählen. | ||
Zeile 350: | Zeile 287: | ||
Color c = colorPicker1.getValue(); | Color c = colorPicker1.getValue(); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== DatePicker==== | ==== DatePicker==== | ||
{{: | {{: | ||
Zeile 361: | Zeile 295: | ||
LocalDate d = datePicker1.getValue(); | LocalDate d = datePicker1.getValue(); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Pagination==== | ==== Pagination==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== FileChooser==== | ==== FileChooser==== | ||
{{: | {{: | ||
Zeile 387: | Zeile 315: | ||
File f = fileChooser1_openFile(); | File f = fileChooser1_openFile(); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== FileChooser==== | ==== FileChooser==== | ||
{{: | {{: | ||
Zeile 407: | Zeile 332: | ||
File f = fileChooser1_saveFile(); | File f = fileChooser1_saveFile(); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== DirectoryChooser==== | ==== DirectoryChooser==== | ||
{{: | {{: | ||
Zeile 427: | Zeile 349: | ||
File d = directoryChooser1_openDirectory(); | File d = directoryChooser1_openDirectory(); | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== ImageView==== | ==== ImageView==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== MediaView==== | ==== MediaView==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== TableView==== | ==== TableView==== | ||
{{: | {{: | ||
Zeile 448: | Zeile 361: | ||
Im Attribut // | Im Attribut // | ||
Im Attribut // | Im Attribut // | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
- | |||
- | |||
- | |||
- | |||
=====JavaFX Shapes===== | =====JavaFX Shapes===== | ||
Zeile 471: | Zeile 377: | ||
} | } | ||
</ | </ | ||
- | |||
- | \\ | ||
---- | ---- | ||
==== Rectangle ==== | ==== Rectangle ==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Ellipse ==== | ==== Ellipse ==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Polygon==== | ==== Polygon==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
- | |||
==== Polyline==== | ==== Polyline==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Arc ==== | ==== Arc ==== | ||
{{: | {{: | ||
- | |||
- | \\ | ||
---- | ---- | ||
- | |||
==== Line ==== | ==== Line ==== | ||
{{: | {{: | ||
- | \\ | ||
---- | ---- | ||
- | |||
==== Text ==== | ==== Text ==== | ||
{{: | {{: | ||
- | \\ | ||
---- | ---- | ||
==== QuadCurve ==== | ==== QuadCurve ==== | ||
{{: | {{: | ||
- | \\ | ||
---- | ---- | ||
==== CubicCurve ==== | ==== CubicCurve ==== | ||
{{: | {{: | ||
- | \\ | + | ---- |
+ | ==== SVGPath==== | ||
+ | {{: | ||
---- | ---- |
de/javafx.1545481641.txt.gz · Zuletzt geändert: 2018/12/22 13:27 von roehner