Перейти к содержанию

JavaFX/Введение

Материал из Викиверситета

Библиотека JavaFX включена в JDK начиная с версии 8. Рассматривается как преемник Swing.

В IntelliJ IDEA есть возможность воспользоваться шаблоном JavaFX. В шаблоне есть несколько файлов, которые выводят на экран окно с приветствием. Программу можно запустить.

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.io.IOException;

public class HelloApplication extends Application {

    @Override
    public void start(Stage stage) throws IOException {
        FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
        Scene scene = new Scene(fxmlLoader.load(), 320, 240);
        stage.setTitle("Hello!");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

В этом коде дана ссылка на файл hello-view.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>

<?import javafx.scene.control.Button?>
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml"
      fx:controller="org.project.javafx2.HelloController">
    <padding>
        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
    </padding>

    <Label fx:id="welcomeText"/>
    <Button text="Hello!" onAction="#onHelloButtonClick"/>
</VBox>

Контроллер:

import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class HelloController {
    @FXML
    private Label welcomeText;

    @FXML
    protected void onHelloButtonClick() {
        welcomeText.setText("Welcome to JavaFX Application!");
    }
}

Пример создания простого окна:

import javafx.application.Application;
import javafx.stage.Stage;
 
public class Main extends Application{
     
    public static void main(String[] args) {
         
        launch(args);
    }
     
    @Override
    public void start(Stage stage) {
         
        stage.setTitle("Hello, JavaFX"); // установка заголовка
        stage.setWidth(250);            // установка ширины
        stage.setHeight(150);           // установка длины
        stage.show();                   // отображение окна на экране
    }
}