繁体   English   中英

JavaFX Scene Builder定制选项卡

[英]JavaFX Scene Builder custom tab

我已经为JavaFX创建了自己的自定义控件。 当我手动将其添加到FXML文件中时,它运行良好。 当我尝试导入它时,它对于Java Scene Builder是“不可见的”。 因此,我有下一个代码(极其简化的版本): MyTab.fxml

<?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);
        }
    }
}

我已经使用此控件构建了一个jar文件,并尝试将其导入JavaFX Scene Builder 2.0。 导入时仅出现一个错误“不是节点:tafm.javafx.controls.MyTab.class”,并且没有可用的MyTab控件。

然后,将此类(与fxml一起)更改为:

public class MyTab extends HBox

(仅用于测试目的)。 它已成功加载到SB! 因此,据我了解,不可能创建自己的“标签”。 是真的吗 当然,我可以手动编辑fxml文件,但是我想在SB中进行。 是否存在一些解决方法?

JavaFX中的Tab不从Node继承。 从收到的消息中也很清楚。

所有自定义控件都必须是场景图的一部分,即基于Node 最好所有自定义控件都继承自Control ,这将简化并标准化其开发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM