Пример JavaFX Hello World
JavaFX - это набор графических и мультимедийных пакетов, которые позволяют разработчикам проектировать, создавать, тестировать, отлаживать и развертывать многофункциональные клиентские приложения, которые согласованно работают на разных платформах.
(Source: Oracle)
Начиная с JDK 7u6 JavaFX включен в стандартные пакеты JDK и JRE, если у вас более старая установка Java, либо обновите, либо перейдите вhere.
Access JavaFX in Eclipse IDE + Java 8
По умолчанию, когда мы обращаемся к API JavaFX, Eclipse запрашивает ошибкиAccess restriction
. Чтобы решить эту проблему,install e(fx)clipse
plugin.
JavaFX in Java 8
В Java 8 JavaFX не является частью среды выполнения JavaSE, а является внешней библиотекой -lib\ext\jfxrt.jar
Пример JavaFX Hello world
Простой пример, в котором мы используемGridPane
для размещения 4Rectangles
, которые рисуют фон, иBorderPane
дляButton
иLabel
.
JavaFxHelloWorld.java
package com.techfou.helloworld; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.stage.Stage; public class JavaFxHelloWorld extends Application { private int counter = 0; public static void main(String[] args) { launch(); } @SuppressWarnings("static-access") public void start(Stage stage) { stage.setTitle("Hello World!"); GridPane grid = new GridPane(); grid.setHgap(0); grid.setVgap(0); Rectangle r1 = new Rectangle(); r1.setFill(Color.DARKKHAKI); r1.setHeight(125); r1.setWidth(125); Rectangle r2 = new Rectangle(); r2.setFill(Color.rgb(189, 40, 40)); r2.setHeight(125); r2.setWidth(125); Rectangle r3 = new Rectangle(); r3.setFill(Color.hsb(235, 0.52, 0.36)); r3.setHeight(125); r3.setWidth(125); Rectangle r4 = new Rectangle(); r4.setFill(Color.web("b894cc")); r4.setHeight(125); r4.setWidth(125); grid.add(r1, 0, 0); grid.add(r2, 0, 1); grid.add(r3, 1, 0); grid.add(r4, 1, 1); Label l = new Label(); l.setFont(new Font("Calibri", 15)); l.setTextFill(Color.BLACK); Button button = new Button(); button.setFont(new Font("Calibri", 15)); button.setText("Say 'Hello World'"); button.setOnAction(new EventHandler() { public void handle(ActionEvent event) { l.setText("You said Hello to the world: " + ++counter + ((counter == 1) ? " time" : " times")); } }); BorderPane bp = new BorderPane(); bp.setBottom(l); bp.setAlignment(l, Pos.CENTER); bp.setCenter(button); StackPane root = new StackPane(); root.getChildren().add(grid); root.getChildren().add(bp); stage.setScene(new Scene(root, 250, 250)); stage.show(); } }
Выход:
При однократном нажатии кнопки «Сказать« Hello World »»:
При многократном нажатии кнопки «Сказать« Hello World »»: