... > Java > Графический интерфейс с...

Графический интерфейс с использованием JavaFX

НАВИГАЦИЯ ПО СТРАНИЦЕ

Настройка проекта Создание основного класса Запуск приложения Добавление элементов Стилизация

JavaFX — это современный фреймворк для создания графических интерфейсов в Java. Давайте рассмотрим основные шаги создания простого графического приложения с использованием JavaFX.

Шаг 1: Настройка проекта

Убедитесь, что у вас есть установленная библиотека JavaFX и настроенный проект, чтобы использовать ее. В современных интегрированных средах разработки (IDE), таких как IntelliJ IDEA или Eclipse, этот процесс обычно автоматизирован.

Шаг 2: Создание основного класса

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class SimpleJavaFXApp extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Простое JavaFX Приложение");

        Button btn = new Button();
        btn.setText("Нажми меня");

        // Обработка события при нажатии кнопки
        btn.setOnAction(event -> System.out.println("Привет, JavaFX!"));

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

Шаг 3: Запуск приложения

Чтобы запустить JavaFX приложение, необходимо вызвать метод launch в методе main. IDE обычно предоставляют удобные средства для запуска JavaFX приложений.

public class Main {
    public static void main(String[] args) {
        SimpleJavaFXApp.launch(SimpleJavaFXApp.class, args);
    }
}

Шаг 4: Добавление элементов управления

JavaFX предоставляет множество элементов управления, таких как текстовые поля, метки, таблицы и многое другое. Пример добавления текстового поля и метки:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class JavaFXWithControls extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX с элементами управления");

        TextField textField = new TextField();
        Label label = new Label("Введите текст:");

        // Обработка события изменения текста в поле
        textField.textProperty().addListener((observable, oldValue, newValue) ->
                label.setText("Введенный текст: " + newValue));

        VBox vbox = new VBox(label, textField);

        primaryStage.setScene(new Scene(vbox, 300, 200));
        primaryStage.show();
    }
}

Шаг 5: Стилизация с использованием CSS

JavaFX также поддерживает стилизацию с использованием CSS. Создайте файл style.css:

.label {
    -fx-font-size: 14pt;
    -fx-text-fill: blue;
}

.text-field {
    -fx-background-color: #f0f0f0;
    -fx-font-size: 12pt;
}

Затем примените стили в коде:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class JavaFXWithCSS extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX со стилями CSS");

        TextField textField = new TextField();
        Label label = new Label("Введите текст:");

        // Обработка события изменения текста в поле
        textField.textProperty().addListener((observable, oldValue, newValue) ->
                label.setText("Введенный текст: " + newValue));

        VBox vbox = new VBox(label, textField);
        vbox.getStyleClass().add("custom-vbox"); // Применение пользовательского класса стиля

        Scene scene = new Scene(vbox, 300, 200);
        scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Эти шаги предоставляют основы создания графического интерфейса с использованием JavaFX. Разработка более сложных приложений может включать в себя использование FXML для разметки интерфейса и более сложной логики.