当前位置: 首页 > 知识库问答 >
问题:

在场景生成器中打开自定义控件时出现UnsupportedClassVersionError

壤驷麒
2023-03-14

我的自定义类:

public class IntegerField extends TextField {
    public IntegerField() {
        super();
        restrictToNumbersOnly();
    }

    public IntegerField(String text) {
        super(text);
        restrictToNumbersOnly();
    }
    public void restrictToNumbersOnly() {
         // Irrelevant
    }
}

然后尝试添加这个自定义类,如下所示:

我已经尝试搜索这个错误,但没有找到任何解释为什么这不应该工作。我找到的示例表明,应该可以从control类扩展,并将其直接导入到fxml文件中,事实确实如此。当运行程序时,它的工作是完美的,这是场景构建器的问题。

我意识到这是一个Java版本问题,但整个项目设置为Java9(53),我尝试过更改版本,但没有成功。

共有1个答案

贺浩壤
2023-03-14

我还没有找到内置场景构建器的修复方法,但我已经找到了外部场景构建器的解决方法,使用以下步骤:

  • 安装Gluon Scene Builder。
  • 将NumberField移动到它自己的包中。
  • 创建仅包含NumberField的自定义fxml。
  • 将JavaFX应用程序添加到包中。
  • 将包定义为项目。
  • 生成项目。
  • 在Gluon Scene Builder中添加自定义JAR。
 类似资料:
  • 我通过扩展现有控件创建了一个新控件,我希望在JavaFX场景中使用这个新控件。我希望能够使用Scene Builder编辑我的场景,但在将新控件添加到FXML文件后,我在打开Scene Builder时遇到。 例如,下面是我创建的一个类,它扩展了: 将此控件添加到FXML文件后... 为什么Scene Builder找不到我的新控件?我需要做什么才能让它找到并能够使用我的新控件? 如果需要,下面是

  • 几个星期以来,我一直在想办法解决这个问题,现在我开始放弃了。我肯定做了什么根本错误的事情。不管怎样,这是我的情况。我以前用JavaFX做了一个简单的小程序,但现在发现了Scene Builder,并想用这个工具重新构建它。该项目包括几个经常重用的组件,如下面的组件。它由一个标签、一个滑块、一个文本字段和另一个自定义组件InfoIcon组成。 我已经了解到,在构建我称之为SliderVariable

  • 我使用一个fxml文件和一个Java类实现了一个自定义控件,类似于本官方教程中所解释的内容(参见下面的代码)。请注意,fxml根元素是用定义的,我以编程方式调用。 我尝试在应用程序的FXML布局中包含控件,应用程序加载良好(并按预期显示控件)。 但是,如果我尝试在Scene Builder 2.0中导入包含控件的jar文件,则该控件不会出现在要导入的组件列表中(与同一jar中的其他一些控件不同)。

  • 我正在使用IntelliJ IDEA和Scene Builder开发一个JavaFX应用程序。为了创建一个具有多个选择的组合框,我已经将ControlsFx.jar库导入到场景构建器和我的项目中,并计划使用它们提供的CheckComboBox控件,正如这里所建议的那样。 当我将库导入到场景生成器时,CheckComboBox控件不在加载的控件中。所以我编辑了FXML文件,并通过编写的代码插入了它。

  • 我正在设计一款跳棋游戏,一旦游戏结束,一个新窗口就会打开,你可以开始一个新游戏,也可以退出。我对JavaFX了解不多,我一直在努力让我的代码正常工作,但我没有成功。。。 我有一个困难,我的电路板没有显示为fxml文件,但它是用Java代码创建的,并放在我的边框窗格的中心。边框窗格的顶部是fxml文件。然后,游戏结束后的另一个窗口也是另一个fxml文件: 这个fxml文件的Controller类如下

  • 当我在一个舞台上工作时,我注意到我几乎有三次完全相同的东西。而不是那样(因为我讨厌那样),我决定把我有的3次,并把它变成一个自定义组件。 现在我知道我可以在代码中添加它,但我不能预测布局行为(其中两个将直接进入选项卡,第三个将进入网格窗格)。 我不想要的是: 这可能吗?我又从C#和VS2010中出来了,当涉及到自定义控件时,我有点被宠坏了,所以如果有可能让类似的事情发生,有人能告诉我怎么做吗? 是