Использование Scene Builder JavaFX (разработка гаджета с графическим интерфейсом оказывается такой простой)
Использование Scene Builder JavaFX (разработка гаджета с графическим интерфейсом оказывается такой простой)

博主个人社区:Сообщество разработчиков и изучения алгоритмов Персональная страница блоггера:Killing Блог Vibe Приглашаем всех присоединиться, общаться и учиться вместе~~

1. Предисловие

Прежде всего, позвольте мне заявить, что сила Java не в графическом интерфейсе. Теперь это мир Интернета. Блогер разместил эту статью только для личного интереса, если вы изучаете разработку на Java и хотите в свободное время создавать гаджеты с графическим интерфейсом. , вы можете использовать JavaFX. Если вам нужно разрабатывать приложения корпоративного уровня, рекомендуется использовать Qt или WPF. Это также хороший выбор.

2. Загрузите JavaFX и конструктор сцен.

Начиная с выпуска JDK11, JavaFX больше не включен в JDK. Для удобства всех можно использовать JDK8 напрямую.

Адрес загрузки следующий:

Официальный сайт JavaFX в Китае

Не знаете фронтенд? Это не имеет значения.

Являясь инструментом проектирования и кодирования страниц Java с помощью перетаскивания, Scene Builder обладает мощными возможностями проектирования с помощью перетаскивания. Для некоторых новичков и ситуаций, требующих быстрого реагирования на кодирование страниц, эффект от этого инструмента абсолютно удовлетворительен.

У официального представителя есть подробная документация для справки. В этой статье описывается простое использование Scene Builder, которое поможет вам быстро приступить к разработке настольного приложения на Java.

3. Использование конструктора сцен

  1. После загрузки откройте его и выберите «Базовое приложение», чтобы помочь вам понять.
  1. После открытия должен быть такой интерфейс

Средний — это пользовательский интерфейс настольной программы, которую мы хотим спроектировать. В библиотеке слева есть некоторые элементы управления JavaFX, такие как кнопки и т. д., которые можно перетаскивать прямо в середину, что очень удобно. Мы можем разработать собственный интерфейс в соответствии с нашими собственными требованиями к интерфейсу. Наконец, нам нужно только нажать «Сохранить», чтобы создать файл fxml.

4. Подробное обучение (пример)

4.1 Конфигурация среды

1. Рекомендуется использовать Intellij-idea. Первым шагом является сборка проекта (в обычном случае необходимо собрать проект Maven).

2.НажмитеFile—>Нажмитеsettings—>Languages&Frameworks—>JavaFX

Заполните загруженный файл SceneBuilder.exe в поле «Путь к SceneBuilder».

4.2 Создайте файл fxml и файл класса контроллера.

.fxml вариант №

FXML — это файл, который представляет объекты интерфейса JavaFX в формате XML. Каждый элемент в файле FXML может быть сопоставлен с классом в JavaFX. Атрибуты или подэлементы каждого элемента FXML могут быть сопоставлены с соответствующим свойством класса JavaFXML.

Грубо говоря, это файл, управляющий этим интерфейсом, который можно понимать как кодовое представление интерфейса~~

Зачем нам нужен файл класса контроллера?

Он используется для привязки этого файла fxml, для управления некоторыми операциями этого интерфейса и реализации некоторых функций~~

1. Разобравшись, теперь создаём в проекте два файла, а именно:

Создайте файл fxml:

Создайте файл класса контроллера:

Затем измените этоfx:controllerсвойства внутри

2.然后右键Нажмите这个test.fxml,Нажмите «Открыть» в SceneBuilder.

3. Затем появится следующий интерфейс — только что представленный SceneBuilder.

4.3 Пользовательский интерфейс

Сделаем каштан по желанию:

1. Перетащите любую кнопку в белую область.

2. Затем вы можете изменить стиль, внешний вид и т. д. кнопки в панели свойств справа. Я, например, только что изменил это здесь.

3. Ниже также есть столбец кода, где вы можете установить идентификатор кнопки, события нажатия и т. д. Например, я изменил его на хе-хе здесь, и вы также можете изменить его на xxxbutton, что облегчает разработку.

4. Нажмите кнопку предварительного просмотра выше, чтобы просмотреть интерфейс, который мы сейчас настроили.

5. Нажмите «Просмотр» и выберите «Показать пример скелета контроллера», чтобы напрямую отобразить скелет кода класса контроллера, что особенно удобно! !

6. На данный момент вам нужно только скопировать этот код в класс TestController, который мы создали ранее.

7. Не забудьте нажать «Сохранить», нажать «Файл», затем нажать «Сохранить», и тогда созданный нами ранее fxml-файл автоматически добавит код~~ Разве это не очень удобно?

8. Тег кнопки и соответствующие атрибуты добавляются в исходный файл fxml.

4.4 Запускаем нашу программу

После того, как два вышеуказанных файла будут готовы, нам нужно только создать входной класс для запуска нашей программы.

Сначала создайте основной класс,Затем вставьте следующий код скопировать (почему, пока не беспокойтесь об этом):,Если что-то не понятно, можете написать блоггеру личное сообщение,Принцип будет кратко объяснен далее в статье)

Язык кода:javascript
копировать
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.util.Objects;

/**
 * @author Dianzhi Han
 * @version 1.0
 * @description: TODO
 * @date 2022/11/18 12:45
 */

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getClassLoader().getResource("test.fxml")));
        primaryStage.setTitle("test");
        primaryStage.setScene(new Scene(root, 1300, 1000));
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Затем просто нажмите «Выполнить»~~

Вы можете изменить функции, которые вы можете получить, нажав кнопку в методе щелчка в соответствии с вашими собственными функциональными требованиями ~

5. Расширение

  • Класс Controller, который мы создали ранее, обычно должен реализовать интерфейс Initializable и переопределить метод инициализации внутри. Используется для инициализации таких вещей, как таблицы базы данных, при инициализации интерфейса.
  • Порядок выполнения программы такой. init() -> start() -> stop(), наш входной класс Main наследует абстрактный класс Application и переписывает его метод start(), а класс Controller может переопределить метод init() для выполнения некоторой работы, связанной с инициализацией.

Давайте возьмем приведенный выше пример кнопки, чтобы объяснить, для чего нужны атрибуты в метке~

  • fx:idИмеется в виду этот контрольidценить,Чтобы управлять этим элементом управления в классе Controller
  • onAction指的是Нажмите这个按钮就能实现什么功能
  • textотносится к тексту этой кнопки
  • Остальные предназначены для управления размером кнопок.

Подвести итог

Выше приведено вводное руководство по JavaFX и использованию SceneBuilder, над созданием которого блоггер усердно работал. Если вы ничего не понимаете, вы можете напрямую отправить личное сообщение блоггеру. Если это полезно, поставьте лайк. , добавьте в закладки и подпишитесь. Вы должны поддержать блоггера. Самая большая мотивация для обновления ~.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose