mycomponents/MyComponent.fxml
mycomponents/MyComponent.java
mycomponent.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import org.kordamp.ikonli.javafx.FontIcon?>
<fx:root type="javafx.scene.layout.AnchorPane" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111">
<children>
<Button mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="gmi-check-circle" iconSize="24" />
</graphic>
</Button>
</children>
</fx:root>
mycomponent.java:
package mycomponents;
import java.io.IOException;
import javafx.fxml.FXMLLoader;
import javafx.scene.layout.AnchorPane;
public class MyComponent extends AnchorPane {
public MyComponent() {
FXMLLoader loader = new FXMLLoader(MyComponent.class.getResource("MyComponent.fxml"));
loader.setRoot(this);
loader.setController(this);
try {
loader.load();
} catch (IOException exception) {
throw new RuntimeException(exception);
}
}
}
项目编译成功,我可以在Scene Builder中打开mycomponent.fxml
(因为我将三个Ikonli
jar导入到Scene Builder中(通过存储库搜索))。编译完Components project后,我将Components.jar
导入到Scene Builder中,库管理器中的情况是:
myapp/FXMLDocument.fxml
myapp/FXMLDocumentController.java
myapp/MyApp.java
fxmlDocument.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import mycomponents.MyComponent?>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111" fx:controller="myapp.FXMLDocumentController">
<children>
<MyComponent />
</children>
</AnchorPane>
fxmlDocumentController.java:
package myapp;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.Initializable;
public class FXMLDocumentController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
myapp.java:
package myapp;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MyApp extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
java.io.IOException: javafx.fxml.LoadException:
/C:/Users/user/Documents/NetBeansProjects/MyApp/src/myapp/FXMLDocument.fxml:9
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:82)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:97)
at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2384)
at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:664)
at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:385)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:634)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.access$200(SceneBuilderApp.java:84)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp$1.invalidated(SceneBuilderApp.java:496)
at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.ReadOnlyBooleanPropertyBase.fireValueChangedEvent(ReadOnlyBooleanPropertyBase.java:72)
at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:103)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:144)
at com.oracle.javafx.scenebuilder.kit.library.user.UserLibrary.lambda$updateFirstExplorationCompleted$7(UserLibrary.java:324)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
Caused by: javafx.fxml.LoadException:
/C:/Users/user/Documents/NetBeansProjects/MyApp/src/myapp/FXMLDocument.fxml:9
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:89)
... 22 more
Caused by: java.lang.RuntimeException: javafx.fxml.LoadException:
file:/C:/Users/user/AppData/Roaming/Scene%20Builder/Library/Components.jar!/mycomponents/MyComponent.fxml
at mycomponents.MyComponent.<init>(MyComponent.java:15)
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:423)
at java.lang.Class.newInstance(Class.java:442)
at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1009)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:746)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
... 24 more
Caused by: javafx.fxml.LoadException:
file:/C:/Users/user/AppData/Roaming/Scene%20Builder/Library/Components.jar!/mycomponents/MyComponent.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at mycomponents.MyComponent.<init>(MyComponent.java:13)
... 34 more
Caused by: java.lang.ClassNotFoundException: org.kordamp.ikonli.javafx.FontIcon
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2916)
at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2905)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
... 40 more
Hi我面临同样的问题,作为一个解决方案,我提取de.jar依赖项,然后包括我的Component.jar。
我用gradle来构建,这是构建的一个片段。gradle是事情发生的地方。
'XXX'是我的库名;
...
dependencies {
...
compile 'br.com.emorgado:XXX:1.0.0-SNAPSHOT'
...
}
task extractTransitiveDependencies(type: Copy) {
into "$buildDir/classes/main"
from {
configurations.compile.filter{
it.name.startsWith('XXX')
}
.collect {
zipTree( it )
}
}
}
jar.dependsOn extractTransitiveDependencies
jar {
doFirst {
copy{
from("$buildDir/output/lib/br/com/emorgado/"){
exclude 'META-INF'
}
into("/br/com/emorgado/") // <- this is my component folder
}
...
我试图为其他gradle项目使用的自定义gradle插件构建一个jar。我使用java编写插件。我有一个问题,包括我的jar中的依赖项。如果我使用下面的代码构建jarbuild.gradle 在一个项目中应用插件时,我得到了一个针对guava类的NoClassDefFound异常。如果我在 它表示未找到Id为“my Plugin”的。如何在gradle插件jar中包含依赖项?
这是我的第一个问题,所以我会尽力做好。 我的团队使用几个常见类部署了多个Java云函数(GCP)(使用maven来管理依赖关系)。现在,这些类在每个函数中都是重复的,必须在每次代码编辑时到处更新。每个云功能都是从源代码部署的。为了避免重复这些类,我将它们打包在一个jar中,在本地一切都运行良好。我在每个云函数pom文件中添加了这个jar作为本地依赖项,并尝试从jar部署,方法是构建一个包含所有依赖
如何编写自定义gradle插件来处理自定义存储库中自定义模块描述符中的依赖关系?gradle文档说了以下内容,但我还没有找到任何可以告诉我如何操作的内容。 即使您的项目使用的是自定义依赖关系管理系统或类似Eclipse的东西。类路径文件作为依赖关系管理的主数据,编写Gradle插件以在Gradle中使用此数据非常容易。 我一直在为ATG项目维护一个定制的常春藤解析器(源自此项目),但Gradle最
本文向大家介绍OCaml 没有外部依赖关系的基本示例,包括了OCaml 没有外部依赖关系的基本示例的使用技巧和注意事项,需要的朋友参考一下 示例 如果您的项目没有外部依赖关系,并且具有foo.ml主要入口点,则可以使用以下命令编译字节码版本 要获取本机可执行文件,请运行
我已经能够让用net core编写的Azure函数运行。我现在添加了对“WindowsAzure.存储”的引用,现在当我使用本地测试环境(“func主机启动”)时,我得到了加载体验。 我不能使用默认的表存储绑定器,因为我需要在不同的表中重新插入记录。 我使用预编译函数,正在OSX上使用VSCode进行开发。如果支持或不支持此方案,我找不到任何信息。甚至有可能让外部依赖项与Azure函数的2.0运行
我们在自己的Maven项目中使用jaxb2-maven-plugin生成一组通用的XSD(数据类型、词汇表等)。在第二个项目中,我需要在编译时引用其中一个或多个XSD,但不希望它们包含在生成的工件中。我创建了一个曲库文件,除了我在其中获取所有内容外,它运行良好。 我仔细研究了插件文档,但它们在细节上少得可怜。有没有办法在不需要每个项目都复制它们的情况下重用常见模式? 谢谢
我有一个Android闭源模块,将在其他项目中用作库。它包含外部依赖项。 为了发布它,我用下面的gradle任务创建了一个Maven工件: 它生成.aar文件,即pom。xml等而没有问题。 然后我创建了一个依赖于我的库的项目。它会一直工作,直到需要访问外部依赖时,抛出一个类未找到异常。 如何编辑我的gradle任务以包含外部依赖项或至少对它们的引用?它们以mvnrepository.com和gi
我是和的新手。我正在尝试在远程计算机上运行hdfs MapReduce作业。我没有写入/编辑依赖项文件的权限。我想知道是否可以将我的Maven项目传递给我的MapReduce作业。这样,我就不需要SSH进入远程机器并更改maven项目的依赖关系。我将使用包含远程计算机上未包含的所有所需依赖项的JAR来运行我的MapReduce作业。