javafx Zelfstudie
Aan de slag met javafx
Zoeken…
Opmerkingen
JavaFX is een softwareplatform voor het maken en leveren van desktop-applicaties, evenals rich internet-applicaties (RIA's) die op een breed scala aan apparaten kunnen worden uitgevoerd. JavaFX is bedoeld om Swing te vervangen als de standaard GUI-bibliotheek voor Java SE.
IT stelt ontwikkelaars in staat om rijke client-applicaties te ontwerpen, maken, testen, debuggen en implementeren.
Het uiterlijk van JavaFX-applicaties kan worden aangepast met behulp van Cascading Style Sheets (CSS) voor styling (zie JavaFX: CSS ) en (F) XML-bestanden kunnen worden gebruikt om structuren te objecteren waardoor het eenvoudig is om een applicatie te bouwen of te ontwikkelen (zie FXML en Controllers ) . Scene Builder is een visuele editor waarmee fxml-bestanden voor een gebruikersinterface kunnen worden gemaakt zonder code te schrijven.
versies
Versie | Publicatiedatum |
---|---|
JavaFX 2 | 2011-10-10 |
JavaFX 8 | 2014/03/18 |
Installatie of instellingen
De JavaFX API's zijn beschikbaar als een volledig geïntegreerde functie van de Java SE Runtime Environment (JRE) en de Java Development Kit (JDK). Omdat de JDK beschikbaar is voor alle belangrijke desktopplatforms (Windows, Mac OS X en Linux), werken JavaFX-applicaties die zijn gecompileerd naar JDK 7 en later ook op alle belangrijke desktopplatforms. Ondersteuning voor ARM-platforms is ook beschikbaar gemaakt met JavaFX 8. JDK voor ARM bevat de basis-, grafische en besturingscomponenten van JavaFX.
Om JavaFX te installeren, installeert u de door u gekozen versie van de Java Runtime-omgeving en de Java Development-kit .
Functies aangeboden door JavaFX zijn onder meer:
- Java API's.
- FXML en Scene Builder.
- WebView.
- Swing-interoperabiliteit.
- Ingebouwde UI-besturingselementen en CSS.
- Modena-thema.
- 3D grafische functies.
- Canvas API.
- API afdrukken.
- Ondersteuning voor rich text.
- Multitouch-ondersteuning.
- Hi-DPI-ondersteuning.
- Hardware-versnelde grafische pijplijn.
- Hoogwaardige media-engine.
- Zelfstandig toepassingsimplementatiemodel.
Hallo wereld programma
De volgende code maakt een eenvoudige gebruikersinterface met een enkele Button
die bij het klikken een String
naar de console afdrukt.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
// create a button with specified text
Button button = new Button("Say 'Hello World'");
// set a handler that is executed when the user activates the button
// e.g. by clicking it or pressing enter while it's focused
button.setOnAction(e -> {
//Open information dialog that says hello
Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?");
alert.showAndWait();
});
// the root of the scene shown in the main window
StackPane root = new StackPane();
// add button as child of the root
root.getChildren().add(button);
// create a scene specifying the root and the size
Scene scene = new Scene(root, 500, 300);
// add scene to the stage
primaryStage.setScene(scene);
// make the stage visible
primaryStage.show();
}
public static void main(String[] args) {
// launch the HelloWorld application.
// Since this method is a member of the HelloWorld class the first
// parameter is not required
Application.launch(HelloWorld.class, args);
}
}
De Application
is het toegangspunt van elke JavaFX-toepassing. Er kan slechts één Application
worden gestart en dit wordt gedaan met behulp van
Application.launch(HelloWorld.class, args);
Dit maakt een instantie van de Application
klasse die als parameter is doorgegeven en start het JavaFX-platform.
Het volgende is belangrijk voor de programmeur hier:
- Eerste
launch
maakt een nieuw exemplaar van de klasseApplication
(in dit gevalHelloWorld
). De klasseApplication
daarom een no-arg constructor nodig. -
init()
wordt aangeroepen op de gemaakteApplication
instantie. In dit geval doet de standaardimplementatie vanApplication
niets. -
start
wordt aangeroepen voor de toepassingAppication
en de primaireStage
(= venster) wordt doorgegeven aan de methode. Deze methode wordt automatisch aangeroepen op de JavaFX Application-thread (platformthread). - De applicatie wordt uitgevoerd totdat het platform bepaalt dat het tijd is om af te sluiten. Dit gebeurt wanneer het laatste venster in dit geval wordt gesloten.
- De
stop
wordt aangeroepen op deApplication
instantie. In dit geval doet de implementatie vanuitApplication
niets. Deze methode wordt automatisch aangeroepen op de JavaFX Application-thread (platformthread).
Bij de start
methode de scène grafiek is opgebouwd. In dit geval bevat het 2 Node
s: een Button
en een StackPane
.
De Button
vertegenwoordigt een knop in de gebruikersinterface en het StackPane
is een container voor de Button
die de plaatsing ervan bepaalt.
Er wordt een Scene
gemaakt om deze Node
weer te geven. Ten slotte wordt de Scene
aan het Stage
toegevoegd. Dit is het venster dat de hele gebruikersinterface toont.