如何将maked javafx jar文件导入场景构建器?

时间:2016-12-23 08:16:36

标签: javafx jar scenebuilder

我正在开发custom control. Like this。我完成了这个控制。

然后。我想在场景构建器中使用它。所以,我将我的文件导出到jar。我在场景构建器中导入jar文件。

但是,场景构建器print noting. Like this.

首先,我的结构是这样的。一个控制匹配一个皮肤。

sample
    control
        DateChooser.java
        DateChooserSkin.java
        DatePickerForm.java
        DatePickerFormSkin.java
    css
         ....
    image
         ....
    fxml 
         sample.fxml
    Main.java

我有两个控制权。因此,结果就像这个UI由一个textFeild和一个datePciker组成。

我写了fxml代码和Main。这样的java。

<AnchorPane prefHeight="320.0" prefWidth="240.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" >
     <DatePickerForm></DatePickerForm>
</AnchorPane>


public class Main extends Application {

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

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

我正在继续导出jar。

选择主要方法,然后我导出。然后我把这个jar放到Scene构建器中。但结果太糟糕了。

有什么问题?请帮我。

我的错误日志是这个

xception for:sample / DateChooser.class javafx.fxml.LoadException: 未知路径:2

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)

at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:104)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1012)

at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)

at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723)

at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)

at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.instantiateWithFXMLLoader(JarExplorer.java:105)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:146)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:298)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:122)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:88)

at java.lang.Thread.run(Thread.java:744)

引起:java.lang.InstantiationException:sample.DateChooser

at java.lang.Class.newInstance(Class.java:418)

at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1010)

... 11 more

引起:java.lang.NoSuchMethodException:sample.DateChooser。()

at java.lang.Class.getConstructor0(Class.java:2971)

at java.lang.Class.newInstance(Class.java:403)

... 13 more

例外:sample / DateChooserSkin.class javafx.fxml.LoadException: 未知路径:2

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)

at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:104)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1012)

at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)

at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723)

at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)

at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.instantiateWithFXMLLoader(JarExplorer.java:105)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:146)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:298)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:122)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:88)

at java.lang.Thread.run(Thread.java:744)

引起:java.lang.InstantiationException:sample.DateChooserSkin

at java.lang.Class.newInstance(Class.java:418)

at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1010)

... 11 more

引起:java.lang.NoSuchMethodException:sample.DateChooserSkin。()

at java.lang.Class.getConstructor0(Class.java:2971)

at java.lang.Class.newInstance(Class.java:403)

... 13 more

例外:sample / DatePickerForm.class javafx.fxml.LoadException: 未知路径:2

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)

at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2595)

at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.instantiateWithFXMLLoader(JarExplorer.java:105)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:146)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:298)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:122)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:88)

at java.lang.Thread.run(Thread.java:744)

引起:java.lang.IllegalStateException:不在FX应用程序线程上; currentThread = LibraryFolderWatcher(C:\ Users \ GSD \ AppData \ Roaming \ Scene Builder / Library)

at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:210)

at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:393)

at javafx.scene.Scene.<init>(Scene.java:374)

at javafx.scene.Scene.<init>(Scene.java:232)

at javafx.scene.Scene$3$1.<init>(Scene.java:436)

at javafx.scene.Scene$3.createPopupScene(Scene.java:436)

at com.sun.javafx.scene.SceneHelper.createPopupScene(SceneHelper.java:59)

at javafx.stage.PopupWindow.<init>(PopupWindow.java:142)

at javafx.stage.Popup.<init>(Popup.java:39)

at sample.DatePickerForm.<init>(DatePickerForm.java:32)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:408)

at java.lang.Class.newInstance(Class.java:433)

at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1010)

at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)

at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723)

at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)

... 8 more

例外:sample / DatePickerFormSkin.class javafx.fxml.LoadException: 未知路径:2

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)

at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:104)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1012)

at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)

at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723)

at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)

at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.instantiateWithFXMLLoader(JarExplorer.java:105)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:146)

at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:298)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:122)

at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:88)

at java.lang.Thread.run(Thread.java:744)

引起:java.lang.InstantiationException:sample.DatePickerFormSkin

at java.lang.Class.newInstance(Class.java:418)

at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)

at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1010)

... 11 more

引起:java.lang.NoSuchMethodException:sample.DatePickerFormSkin。()

at java.lang.Class.getConstructor0(Class.java:2971)

at java.lang.Class.newInstance(Class.java:403)

... 13 more

不是节点:sample / Main.class

0 个答案:

没有答案