Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:javafx

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:javafx [2018/12/22 13:30] – [Canvas] roehnerde: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 Sie bitte, dass Sie in der Konfiguration unter //Sichtbarkeit// einstellen können, welche Registerkarten angezeigt werden. Für JavaFX benötigen Sie FX Base, FX Controls und FX ShapesDie Registerkarten für AWT und Swing können Sie hier deaktivieren.+Ab dem JDK 11 ist JavaFX nicht mehr im JDK enthalten und muss zusätzlich installiert werden. Sie können sich über https://gluonhq.com/products/javafx/ ein JavaFX Windows SDK herunterladen und parallel zum OpenJDK installieren. In der Konfiguration trägt man unter [[Konfiguration#Interpreter|Interpreter/JavaFX-Ordner]] den JavaFX-Ordner ein. 
 + 
 +Eine Dokumentation von JavaFX kann über https://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html heruntergeladen werden. Den Pfad der Indexdatei docsfx\api\index.html wird unter [[Konfiguration#Dokumentation|Dokumentation - Manual Java FX]] eingetragen
  
 {{:de:javafxconf.png|}} {{:de:javafxconf.png|}}
 +
 +Beachten Sie bitte, dass Sie in der Konfiguration unter //Sichtbarkeit// einstellen können, welche Registerkarten angezeigt werden. Für JavaFX benötigen Sie FX Base, FX Controls und FX Shapes. Die Registerkarten für AWT und Swing können Sie hier deaktivieren.
  
 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: {{:de:Jlabel.png}} Beispiel: {{:de:Jlabel.png}}
Zeile 30: Zeile 34:
 {{:de:jtextfield.png}} {{:de:jtextfield.png}}
 <code java>String Name = tfName.getText();</code> <code java>String Name = tfName.getText();</code>
-\\ 
 ---- ----
 ==== NumberField ==== ==== NumberField ====
Zeile 45: Zeile 48:
 <code java>nfSumme.setDouble(Summe);    // maximale Anzahl von Nachkommastellen: 3657.42323426347834     <code java>nfSumme.setDouble(Summe);    // maximale Anzahl von Nachkommastellen: 3657.42323426347834    
 nfSumme.setDouble(Summe, 2); // zwei Nachkommastellen:                3657.42 </code> nfSumme.setDouble(Summe, 2); // zwei Nachkommastellen:                3657.42 </code>
-\\ 
 ---- ----
 ==== TextArea ==== ==== TextArea ====
Zeile 58: Zeile 60:
 <code java>  taAusgabe.setText("Ausgabe:\n\n"); <code java>  taAusgabe.setText("Ausgabe:\n\n");
   taAusgabe.appendText("Zahl " + Zahl + " gefunden! \n");</code>   taAusgabe.appendText("Zahl " + Zahl + " gefunden! \n");</code>
-\\ 
 ---- ----
 ==== Button ==== ==== Button ====
Zeile 82: Zeile 83:
 {{:de:isselectedde.png}} {{:de:isselectedde.png}}
 <code java>  if (MeineCheckBox.isSelected()) ...</code> <code java>  if (MeineCheckBox.isSelected()) ...</code>
-\\ 
 ---- ----
-==== RadioButton & ToggleGroup ====+==== Buttongroup ====
 {{:de:radiobuttonde.png}} {{:de:radiobuttonde.png}}
-RadioButtons bieten verschiedene Auswahlmöglichkeiten anaus denen man eine Option auswählen kann.\\+Eine Buttongroup gruppiert Radiobuttons oder Checkboxen. Setzen Sie das Attribut Checkboxes auf truewenn 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:buttongroup.png}} in das Formular aufnehmen. +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 //ToggleGroup// an.+
  
-Mit Hilfe der ToggleGroup kann man die ausgewählte Option ermitteln:+<code java>  public String buttonGroup1TG_getSelectedButtonGroupLabel() { ... }</code>
  
-Beispiel:+Damit lässt sich dann ganz einfach die ausgewählte Option einer Buttongroup ermitteln. Beispiel:
  
-<code java>RadioButton gewählterRadioButton = (RadioButtontoggleGroup1.getSelectedToggle();  +<code java>  if (bgFarbeTG_getSelectedButtonGroupLabel().equals("grün"))</code>
-String gewählt = gewählterRadioButton.getText()</code>+
 \\ \\
 ---- ----
Zeile 124: Zeile 122:
 <code java>  String s = (String) meineListe.getSelectionModel().getSelectedItem(); <code java>  String s = (String) meineListe.getSelectionModel().getSelectedItem();
   int Zahl = Integer.parseInt(s);</code>   int Zahl = Integer.parseInt(s);</code>
-\\ 
 ---- ----
 ==== ComboBox ==== ==== ComboBox ====
Zeile 149: 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 158: 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>  int Wert = meinSpinner.getValue();       </code> +<code java>  int Wert = meinSpinner.getValue();</code> 
-\\+ 
 +Um direkt auf Änderungen eines Spinners zu reagieren, benutzt man das //mouseClicked//-Ereignis.
 ---- ----
 ==== Canvas ==== ==== Canvas ====
Zeile 185: Zeile 182:
 Beispiel: Beispiel:
 {{:de:turtlesetorigin.png}} {{:de:turtlesetorigin.png}}
-\\ 
 ---- ----
 ==== MenuBar ==== ==== MenuBar ====
Zeile 191: Zeile 187:
  
 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 199: 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 212: Zeile 206:
  
 {{:de:contextmenude2.png}}   {{:de:contextmenude2.png}}  
- 
-\\ 
 ---- ----
 ==== MenuButton ==== ==== MenuButton ====
Zeile 219: Zeile 211:
  
 Im Objekt-Inspektor gibt man unter //MenuItems// die Menübefehle ein. Zu jedem Menübefehl wird eine Ereignismethode angelegt. Im Objekt-Inspektor gibt man unter //MenuItems// die Menübefehle ein. Zu jedem Menübefehl wird eine Ereignismethode angelegt.
-\\ 
 ---- ----
 ==== SplitMenuButton ==== ==== SplitMenuButton ====
Zeile 225: Zeile 216:
  
 Im Objekt-Inspektor gibt man unter //MenuItems// die Menübefehle ein. Zu jedem Menübefehl und zum SplitMenuButton selbst wird eine Ereignismethode angelegt. Im Objekt-Inspektor gibt man unter //MenuItems// die Menübefehle ein. Zu jedem Menübefehl und zum SplitMenuButton selbst wird eine Ereignismethode angelegt.
-\\ 
 ---- ----
 =====JavaFX Controls===== =====JavaFX Controls=====
Zeile 236: Zeile 226:
   double value = slider1.getValue();   double value = slider1.getValue();
 </code> </code>
-\\ 
 ---- ----
 ==== ProgressBar==== ==== ProgressBar====
Zeile 244: Zeile 233:
   progressBar1.setProgress(0.3);   progressBar1.setProgress(0.3);
 </code> </code>
-\\ 
 ---- ----
 ==== ProgressIndicator==== ==== ProgressIndicator====
Zeile 252: Zeile 240:
   progressIndicator1.setProgress(0.75);   progressIndicator1.setProgress(0.75);
 </code> </code>
-\\ 
 ---- ----
 ==== ToolBar==== ==== ToolBar====
Zeile 261: Zeile 248:
 toolBar1.getItems().addAll(bNeu, bOeffnen, new Separator(), bDrucken);  toolBar1.getItems().addAll(bNeu, bOeffnen, new Separator(), bDrucken); 
 </code> </code>
-\\ 
 ---- ----
 ==== Separator==== ==== Separator====
 {{:de:separator.png}} Mit einer Separator-Komponente kann man GUI-Komponenten durch eine Linie voneinander abtrennen. {{:de:separator.png}} Mit einer Separator-Komponente kann man GUI-Komponenten durch eine Linie voneinander abtrennen.
-\\ 
 ---- ----
 ==== ToggleButton==== ==== ToggleButton====
Zeile 273: Zeile 258:
     if (toggleButton1.isSelected()) ...     if (toggleButton1.isSelected()) ...
 </code> </code>
-\\ 
 ---- ----
 ==== PasswordField==== ==== PasswordField====
 {{:de:password.png}} Mit einer PasswordField-Komponente kann man ein Passwort eingeben, bei dem die einzelnen Zeichen verdeckt angezeigt werden.. {{:de:password.png}} Mit einer PasswordField-Komponente kann man ein Passwort eingeben, bei dem die einzelnen Zeichen verdeckt angezeigt werden..
-\\ 
 ---- ----
 ==== ChoiceBox==== ==== ChoiceBox====
 {{:de:choicebox.png}} Eine ChoiceBox-Komponente ist eine ComboBox-Komponente, bei der man nur auswählen, aber nichts eingeben kann. {{:de:choicebox.png}} Eine ChoiceBox-Komponente ist eine ComboBox-Komponente, bei der man nur auswählen, aber nichts eingeben kann.
-\\ 
 ---- ----
 ==== Hyperlink==== ==== Hyperlink====
 {{:de:hyperlink.png}} Eine Hyperlink-Komponente stellt einen Text als Verweis dar, den man anklicken kann. Wie bei einem Button wird dann ein Ereignis ausgelöst, auf das man in einer Ereignismethode reagieren kann. {{:de:hyperlink.png}} Eine Hyperlink-Komponente stellt einen Text als Verweis dar, den man anklicken kann. Wie bei einem Button wird dann ein Ereignis ausgelöst, auf das man in einer Ereignismethode reagieren kann.
-\\ 
 ---- ----
 ==== HTMLEditor==== ==== HTMLEditor====
Zeile 294: Zeile 275:
 String s = hTMLEditor1.getHtmlText(); String s = hTMLEditor1.getHtmlText();
 </code> </code>
-\\ 
 ---- ----
 ==== WebView==== ==== WebView====
 {{:de:webview.png}}\\ {{:de:webview.png}}\\
 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://www.javaeditor.org. 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://www.javaeditor.org.
-\\ 
 ---- ----
 ==== ColorPicker==== ==== ColorPicker====
-{{:de:colorpicker.png}}\\+{{:de:colorpicker.png}}
 Mit einer ColorPicker-Komponente kann man eine Farbe auswählen. Mit einer ColorPicker-Komponente kann man eine Farbe auswählen.
  
Zeile 308: Zeile 287:
 Color c = colorPicker1.getValue(); Color c = colorPicker1.getValue();
 </code> </code>
-\\ 
 ---- ----
 ==== DatePicker==== ==== DatePicker====
Zeile 317: Zeile 295:
 LocalDate d = datePicker1.getValue(); LocalDate d = datePicker1.getValue();
 </code> </code>
-\\ 
 ---- ----
 ==== Pagination==== ==== Pagination====
 {{:de:pagination.png}} Mit einer Pagination-Komponente kann man zwischen Seiten eines Inhalts navigieren. {{:de:pagination.png}} Mit einer Pagination-Komponente kann man zwischen Seiten eines Inhalts navigieren.
-\\ 
 ---- ----
 ==== FileChooser==== ==== FileChooser====
Zeile 339: Zeile 315:
 File f = fileChooser1_openFile(); File f = fileChooser1_openFile();
 </code> </code>
-\\ 
 ---- ----
 ==== FileChooser==== ==== FileChooser====
Zeile 357: Zeile 332:
 File f = fileChooser1_saveFile(); File f = fileChooser1_saveFile();
 </code> </code>
-\\ 
 ---- ----
 ==== DirectoryChooser==== ==== DirectoryChooser====
Zeile 375: Zeile 349:
 File d = directoryChooser1_openDirectory(); File d = directoryChooser1_openDirectory();
 </code> </code>
-\\ 
 ---- ----
 ==== ImageView==== ==== ImageView====
 {{:de:imageview.png}} Mit einer ImageView-Komponente kann man ein Bild (//Image//) anzeigen. {{:de:imageview.png}} Mit einer ImageView-Komponente kann man ein Bild (//Image//) anzeigen.
-\\ 
 ---- ----
 ==== MediaView==== ==== MediaView====
 {{:de:mediaview.png}} Mit einer MediaView-Komponente kann man ein Video mit dem MediaPlayer anzeigen. {{:de:mediaview.png}} Mit einer MediaView-Komponente kann man ein Video mit dem MediaPlayer anzeigen.
-\\ 
 ---- ----
 ==== TableView==== ==== TableView====
Zeile 390: Zeile 361:
 Im Attribut //GenericType// gibt man den Typ der darzustellenden Zeilen an.  Im Attribut //GenericType// gibt man den Typ der darzustellenden Zeilen an. 
 Im Attribut //tableView1Items// werden die in der Tabelle anzuzeigenden Daten gespeichert. Im Attribut //tableView1Items// werden die in der Tabelle anzuzeigenden Daten gespeichert.
-\\ 
 ---- ----
 =====JavaFX Shapes===== =====JavaFX Shapes=====
Zeile 407: Zeile 377:
  
 </code> </code>
-\\ 
 ---- ----
 ==== Rectangle ==== ==== Rectangle ====
 {{:de:rectangle.png}} Eine Rectangle-Komponente stellt ein Rechteck dar. Das Attribut //Fill// legt seine Füllfarbe, das Attribut //Stroke// seine Rahmenfarbe fest. {{:de:rectangle.png}} Eine Rectangle-Komponente stellt ein Rechteck dar. Das Attribut //Fill// legt seine Füllfarbe, das Attribut //Stroke// seine Rahmenfarbe fest.
-\\ 
 ---- ----
 ==== Ellipse ==== ==== Ellipse ====
 {{:de:ellipse.png}} Eine Ellipse-Komponente stellt ein Ellipse dar. Das Attribut //Fill// legt seine Füllfarbe, das Attribut //Stroke// seine Rahmenfarbe fest. {{:de:ellipse.png}} Eine Ellipse-Komponente stellt ein Ellipse dar. Das Attribut //Fill// legt seine Füllfarbe, das Attribut //Stroke// seine Rahmenfarbe fest.
-\\ 
 ---- ----
 ==== Polygon==== ==== Polygon====
 {{:de:polygon.png}} Eine Polygon-Komponente stellt einen geschlossenen Streckenzug dar. Im Attribut //Points// gibt man die Koordinaten der Streckenpunkte an. Sie beziehen sich auf das den Streckenzug umgebende Rechteck. {{:de:polygon.png}} Eine Polygon-Komponente stellt einen geschlossenen Streckenzug dar. Im Attribut //Points// gibt man die Koordinaten der Streckenpunkte an. Sie beziehen sich auf das den Streckenzug umgebende Rechteck.
-\\ 
 ---- ----
 ==== Polyline==== ==== Polyline====
 {{:de:polyline.png}} Eine Polyline-Komponente stellt einen offenen Streckenzug dar. Im Attribut //Points// gibt man die Koordinaten der Streckenpunkte an. Sie beziehen sich auf das den Streckenzug umgebende Rechteck. {{:de:polyline.png}} Eine Polyline-Komponente stellt einen offenen Streckenzug dar. Im Attribut //Points// gibt man die Koordinaten der Streckenpunkte an. Sie beziehen sich auf das den Streckenzug umgebende Rechteck.
-\\ 
 ---- ----
 ==== Arc ==== ==== Arc ====
 {{:de:arc.png}} Eine Arc-Komponente stellt einen Kreis- oder Ellipsenbogen dar. //StartAngle// ist der Anfangswinkel, //Length// die Bogenlänge in Grad und //Type// gibt den Bogentyp an.  {{:de:arc.png}} Eine Arc-Komponente stellt einen Kreis- oder Ellipsenbogen dar. //StartAngle// ist der Anfangswinkel, //Length// die Bogenlänge in Grad und //Type// gibt den Bogentyp an. 
-\\ 
 ---- ----
 ==== Line ==== ==== Line ====
 {{:de:line.png}} Eine Line-Komponente stellt eine Strecke dar. Neben der Farbe der Strecke (//Stroke//) gibt es einige weitere Attribute zu deren Gestaltung. {{:de:line.png}} Eine Line-Komponente stellt eine Strecke dar. Neben der Farbe der Strecke (//Stroke//) gibt es einige weitere Attribute zu deren Gestaltung.
-\\ 
 ---- ----
 ==== Text ==== ==== Text ====
 {{:de:text.png}} Eine Text-Komponente stellt einen Text dar. Mit \n kann man Zeilenumbrüche erzeugen. {{:de:text.png}} Eine Text-Komponente stellt einen Text dar. Mit \n kann man Zeilenumbrüche erzeugen.
-\\ 
 ---- ----
 ==== QuadCurve ==== ==== QuadCurve ====
 {{:de:quadcurve.png}} Die QuadCurve-Komponente definiert ein quadratisches parametrisches Bézier-Kurvensegment im (x, y) -Koordinatenraum. Es wird eine Kurve gezeichnet, die die angegebenen Koordinaten (startX, startY) und (endX, enfY) schneidet, wobei der angegebene Punkt (controlX, controlY) als Bézier-Steuerpunkt verwendet wird. {{:de:quadcurve.png}} Die QuadCurve-Komponente definiert ein quadratisches parametrisches Bézier-Kurvensegment im (x, y) -Koordinatenraum. Es wird eine Kurve gezeichnet, die die angegebenen Koordinaten (startX, startY) und (endX, enfY) schneidet, wobei der angegebene Punkt (controlX, controlY) als Bézier-Steuerpunkt verwendet wird.
-\\ 
 ---- ----
 ==== CubicCurve ==== ==== CubicCurve ====
 {{:de:cubiccurve.png}} Die CubicCurve-Komponente definiert ein kubisch parametrisches Bézier-Kurvensegment im (x, y) -Koordinatenraum. Es wird eine Kurve gezeichnet, die die angegebenen Koordinaten (startX, startY) und (endX, enfY) schneidet, wobei die angegebenen Punkte (controlX1, controlY1) und (controlX2, controlY2) als Bézier-Steuerpunkte verwendet werden. {{:de:cubiccurve.png}} Die CubicCurve-Komponente definiert ein kubisch parametrisches Bézier-Kurvensegment im (x, y) -Koordinatenraum. Es wird eine Kurve gezeichnet, die die angegebenen Koordinaten (startX, startY) und (endX, enfY) schneidet, wobei die angegebenen Punkte (controlX1, controlY1) und (controlX2, controlY2) als Bézier-Steuerpunkte verwendet werden.
-\\ 
 ---- ----
 ==== SVGPath==== ==== SVGPath====
 {{:en:svgpath.png}} Die SVGPath-Komponente stellt eine einfache geometrische Form dar, die durch Analysieren von SVG-Pfaddaten aus einem String erstellt wird. {{:en:svgpath.png}} Die SVGPath-Komponente stellt eine einfache geometrische Form dar, die durch Analysieren von SVG-Pfaddaten aus einem String erstellt wird.
-\\ 
 ---- ----
de/javafx.1545481848.txt.gz · Zuletzt geändert: 2018/12/22 13:30 von roehner