Задать вопрос
Gordigev
@Gordigev
Постигаю android разработку

Javafx: Как в классе Controller корректно объявить элементы GUI?

Здравствующие. Только начал изучать JavaFX.

Добавил переменную кнопки в класс Controller с таким же именем как id в fxml файле. После этого "button1" в fxml загорелось красным и пишет ошибку "cannot set javafx.scene.control.Button to field 'button1'". Ниже код. До добавления переменной всё работало корректно.

Controller:
package control;

import javafx.fxml.FXML;
import java.awt.*;

public class Controller {

    @FXML
    private Button button1;

}


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

<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane fx:id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1" fx:controller="control.Controller">
   <children>
      <Button fx:id="button1" layoutX="200.0" layoutY="150.0" mnemonicParsing="false" text="Button" />
   </children>
</AnchorPane>


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

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }

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


5a51e2596fc46809102315.png
  • Вопрос задан
  • 1461 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
import java.awt.*;
=)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы