Изучение любого языка начинается с коронного и старинного “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); }
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
4 комментариев к статье "JavaFX 2 Hello World"
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Спасибо за вводную статью по JavaFX. Но не понятно, для чего эта технология нужна. На страничке http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm я понял, что можно делать удивительный визуальный интерфейс.
Не видно картинки…
На первом же шаге нечего не объяснено. “После создания вы увидите вот такую структуру:”… нет такой структуры в NetBeans.. что дальше?? А дальше весь код уже и не к чему.. потому что на первом же шаге ступор… а потому что автор нехрена не объяснил.
Такой урок ничему не учит. Удалите его или разъясните всё по порядку
Я так понимаю этот урок учит тех, кто обладает уже начальными навыками Java или хотя бы понял, что такая структура будет при создании проета JavaFX в Inellij IDEA, а не в NetBeans. Но почему то мне кажется, что и в нетбинс структура будет аналогичная.
А прежде чем поднимать тонны ненависти – разберитесь в предмете.