JavaFX 2 Hello World

Изучение любого языка начинается с коронного и старинного «Hello World». Думаю не стоит нам пренебрегать традициями и в изучении JavaFX.

Шаг 1

Для начала, просто создадим наш новый Java FX проект.

После создания вы увидите вот такую структуру:

Файл sample.fxml и Controller удаляем, сегодня с ними работать не будем. Заходим в Main и очищаем метод start(). Будем писать с нуля.

Шаг 2

Наш код будет выглядеть таким образом:

package sample;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        primaryStage.setTitle("Hello World");
        Button button = new Button("click me");
        button.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent actionEvent) {
                System.out.println("Hello World!");
            }
        });
        StackPane pane = new StackPane();
        pane.getChildren().add(button);
        primaryStage.setScene(new Scene(pane,300,300));
        primaryStage.show();
    }

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

Шаг 3

Теперь о том, что нужно знать.

1. Главный класс наследуется от javafx.application.Application class. Метод start() главная точка входа для всех Java FX приложений.
2. Stage — контейнер высшего уровня, Scene — контейнер для всего контента
3. Контент сцены представленный иерархией «узлов»

primaryStage.setTitle("Hello World"); — выставляем заголовок для нашего окна

Button button = new Button("click me"); — создание кнопки
Обратите внимание, что кнопка, это класс, который находится в этом пакете: import javafx.scene.control.Button;

Вешаем обработчик события на кнопку:

button.setOnAction(new EventHandler<ActionEvent>() {
      @Override
      public void handle(ActionEvent actionEvent) {
           System.out.println("Hello World!");
      }
});

StackPane pane = new StackPane(); — корневой узел. Он есть resizable layout. Что означает, что корневой размер узла отслеживает изменения размера окна пользователя.

pane.getChildren().add(button); — добавляем на панель кнопку

primaryStage.setScene(new Scene(pane, 300,300)); — добавляем панель в сцену размерами 300 на 300 и присваиваем сцену нашему главному Stage
primaryStage.show(); — делаем главный Stage видимым.

Шаг 4

Вызываем запуск нашего «проекта».

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

Java FX. Hello World!

Урок создан: 29 июля 2013 | Просмотров: 13201 | Автор: Олег Криль | Правила перепечатки


Добавить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Комментарии:

  • 26 сентября 2014 в 13:49

    Denis

    Спасибо за вводную статью по JavaFX. Но не понятно, для чего эта технология нужна. На страничке http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm я понял, что можно делать удивительный визуальный интерфейс.

  • 08 октября 2015 в 15:34

    kalne

    Не видно картинки…

  • 09 июля 2016 в 17:15

    Дмитрий

    На первом же шаге нечего не объяснено. «После создания вы увидите вот такую структуру:»… нет такой структуры в NetBeans.. что дальше?? А дальше весь код уже и не к чему.. потому что на первом же шаге ступор… а потому что автор нехрена не объяснил.

    Такой урок ничему не учит. Удалите его или разъясните всё по порядку

    • 02 августа 2016 в 22:01

      Аноним

      Я так понимаю этот урок учит тех, кто обладает уже начальными навыками Java или хотя бы понял, что такая структура будет при создании проета JavaFX в Inellij IDEA, а не в NetBeans. Но почему то мне кажется, что и в нетбинс структура будет аналогичная.

      А прежде чем поднимать тонны ненависти — разберитесь в предмете.