Я создал собственный пользовательский элемент управления для JavaFX. Он работает хорошо, когда я добавляю его вручную в файл FXML. И он «невидим» для Java Scene Builder, когда я пытался его импортировать. Итак, у меня есть следующий код (очень упрощенный вариант): MyTab.fxmlПользовательская вкладка JavaFX Scene Builder
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.* ?>
<?import tafm.javafx.controls.MyTab?>
<fx:root type="javafx.scene.control.Tab" xmlns:fx="http://javafx.com/fxml">
</fx:root>
MyTab.java
package tafm.javafx.controls;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.Tab;
import java.io.IOException;
public class MyTab extends Tab {
public MyTab() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("MyTab.fxml"));
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
fxmlLoader.setClassLoader(getClass().getClassLoader());
try {
fxmlLoader.load();
} catch (IOException exception) {
throw new RuntimeException(exception);
}
}
}
У меня есть построить файл фляги с этим элементом управления и попытался импортировать это в JavaFX Scene Builder 2.0. Он импортируется только с одной ошибкой «Не узел: tafm.javafx.controls.MyTab.class», и нет доступного элемента управления MyTab.
Тогда я изменить этот класс (вместе с FXML) как:
public class MyTab extends HBox
(только для целей тестирования). Он успешно загружен в SB! Итак, как я понимаю, невозможно создать собственную вкладку. Это правда? Конечно, я могу вручную редактировать файлы fxml, но я хотел бы сделать это в SB. Существует ли какое-либо решение?
Это ясно. Но существует ли какое-то обходное решение? Как работает SB? Он содержит вкладку в списке управления. Хорошо понял. Это невозможно, пока команда Oracle не решит улучшить SB. –