javafx Samouczek
Rozpoczęcie pracy z javafx
Szukaj…
Uwagi
JavaFX to platforma programowa do tworzenia i dostarczania aplikacji komputerowych, a także bogatych aplikacji internetowych (RIA), które mogą działać na wielu różnych urządzeniach. JavaFX ma zastąpić Swing jako standardową bibliotekę GUI dla Java SE.
IT umożliwia programistom projektowanie, tworzenie, testowanie, debugowanie i wdrażanie bogatych aplikacji klienckich.
Wygląd aplikacji JavaFX można dostosować za pomocą CSS (Cascading Style Sheets) do stylizacji (patrz JavaFX: CSS ) i (F) Pliki XML mogą być używane do tworzenia struktur obiektów ułatwiających tworzenie lub programowanie aplikacji (patrz FXML i kontrolery ) . Scene Builder to edytor wizualny umożliwiający tworzenie plików fxml dla interfejsu użytkownika bez pisania kodu.
Wersje
| Wersja | Data wydania |
|---|---|
| JavaFX 2 | 2011-10-10 |
| JavaFX 8 | 18.03.2014 |
Instalacja lub konfiguracja
Interfejsy API JavaFX są dostępne jako w pełni zintegrowana funkcja środowiska Java SE Runtime Environment (JRE) i Java Development Kit (JDK). Ponieważ JDK jest dostępny na wszystkich głównych platformach komputerowych (Windows, Mac OS X i Linux), aplikacje JavaFX skompilowane do JDK 7 i późniejszych również działają na wszystkich głównych platformach komputerowych. Obsługa platform ARM została również udostępniona w JavFX 8. JDK dla ARM obejmuje bazę, elementy graficzne i kontrolne JavaFX.
Aby zainstalować JavaFX, zainstaluj wybraną wersję środowiska Java Runtime i zestawu Java Development Kit .
Funkcje oferowane przez JavaFX obejmują:
- Interfejsy API Java.
- FXML i Kreator scen.
- WebView.
- Swing interoperacyjności.
- Wbudowane kontrolki interfejsu użytkownika i CSS.
- Motyw Modena.
- Funkcje grafiki 3D.
- Canvas API.
- Drukowanie API.
- Obsługa tekstu sformatowanego.
- Obsługa multitouch.
- Obsługa Hi-DPI.
- Potok grafiki przyspieszany sprzętowo.
- Wydajny silnik multimediów.
- Samodzielny model wdrażania aplikacji.
Program Hello World
Poniższy kod tworzy prosty interfejs użytkownika zawierający pojedynczy Button który po kliknięciu drukuje String do konsoli.
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);
}
}
Klasa Application jest punktem wejściowym każdej aplikacji JavaFX. Można uruchomić tylko jedną Application i odbywa się to za pomocą
Application.launch(HelloWorld.class, args);
Spowoduje to utworzenie instancji klasy Application przekazanej jako parametr i uruchomienie platformy JavaFX.
Dla programisty ważne jest tutaj:
- Pierwsze
launchtworzy nowe wystąpienie klasyApplication(w tym przypadkuHelloWorld). Dlatego klasaApplicationpotrzebuje konstruktora bez arg. -
init()jest wywoływany w utworzonej instancjiApplication. W takim przypadku domyślna implementacja zApplicationnic nie robi. -
Appicationstartjest wywoływane dla instancji aplikacji, a podstawowyStage(= okno) jest przekazywany do metody. Ta metoda jest automatycznie wywoływana w wątku aplikacji JavaFX (wątek platformy). - Aplikacja działa, dopóki platforma nie określi, że nadszedł czas na zamknięcie. W tym przypadku odbywa się to, gdy ostatnie okno jest zamknięte.
- Metoda
stopjest wywoływana w instancjiApplication. W tym przypadku implementacja zApplicationnic nie robi. Ta metoda jest automatycznie wywoływana w wątku aplikacji JavaFX (wątek platformy).
W metodzie start konstruowany jest wykres sceny. W tym przypadku zawiera 2 Node S: Button i StackPane .
Button reprezentuje przycisk w interfejsie użytkownika, a StackPane jest pojemnikiem na Button który określa jego położenie.
Scene jest tworzona, aby wyświetlić te Node . Na koniec Scene jest dodawana do Stage który jest oknem wyświetlającym cały interfejs użytkownika.