Добавление собственного Control в SceneBuilder (JavaFX)

122
12 июля 2019, 02:00

Можно ли добавить собственный элемент управления в SceneBuilder, что бы кроме стандартных (например TextField) в списке было MyTextField?

Я попробовал использовать собственный MyTextField сопоставив его со стандартным TextField, но это неправильно:

Вот мой класс элемента управления:

public class MyTextField extends TextField{
    public MyTextField(MyVar var){
        // что-то новое
        ...
    } 
    ...
}

Вот контроллер:

public class FieldsController {
    @FXML
    MyTextField fld ;
    public FieldsController() {
        MyVar var = new MyVar("test");
        MyTextField fld = new MyTextField(var);
    }
}

Вот файл Main:

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            //=====суть тут==================================================
            AnchorPane fields ;
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(Main.class.getResource("view/FieldsView.fxml"));
            fields = (AnchorPane) loader.load();
            FieldsController controller = loader.getController();
            //===============================================================
            Scene scene = new Scene(fields,1000,800);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Но получаю предупреждение в .fxml файле:

You can not assign 'TextField' to the controller field 'MyTextField'

И соответственно исключения во время компиляции

READ ALSO
Подсчет уникальных чисел в массиве

Подсчет уникальных чисел в массиве

Программа должна подсчитывать уникальные чисел в массиве, например

124
Поиск повторяющихся чисел в графе

Поиск повторяющихся чисел в графе

Дан массив A длины (n+1), содержащий натуральные числа от 1 до nНайти любой повторяющийся элемент за время O(n), не изменяя массив и не используя...

136
Как устранить Утечку Памяти

Как устранить Утечку Памяти

Здорова всемЗа ранее я извиняюсь, Я не силён на русском языке

160
Можно выбрать 2 элемента навигации слайдера за раз

Можно выбрать 2 элемента навигации слайдера за раз

Я использую slick slider для каруселькиНа тач девайсах я могу выбрать сразу 2 элемента навигации по слайдеру (2 точки)

172