Application.launch(StarFXDemo.class, "");
package standalonedemo;
import java.io.IOException;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class StarFXDemo extends Application
{
@Override
public void start(Stage stage) throws Exception
{
Parent root = null;
try
{
root = FXMLLoader.load(getClass().getResource("StarFXDemoDoc.fxml"));
} catch (IOException ioe)
{
ioe.printStackTrace(System.out);
}
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
}
getClass().getResource("/standalonedemo/resources/StarFXDemoDoc.fxml")
返回文件的URL。
starfxdemodoc.fxml为:
<?xml version="1.0" encoding="UTF-8"?>
<?import standalonedemo.*?>
<?import javafx.geometry.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<TitledPane animated="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" text="FX Sim Demo"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="standalonedemo.StarFXDemoDocController">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<VBox prefHeight="85.0" prefWidth="322.0" spacing="5.0" style="-fx-background-color: coral;">
<children>
<Label text="Sim Title" />
<TextField fx:id="SimNameField" onMouseDragExited="#setSimulationName" />
</children>
<padding>
<Insets left="25.0" top="15.0" />
</padding>
</VBox>
<Button fx:id="BuildSphereButton" layoutX="14.0" layoutY="100.0" mnemonicParsing="false" onAction="#buildSphereAction" text="Build Sphere" />
</children></AnchorPane>
</content>
</TitledPane>
而StarfXDemodocController.java是这样的:
package standalonedemo;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class StarFXDemoDocController implements Initializable
{
@FXML
private TextField SimNameField;
@FXML
private Button BuildSphereButton;
/**
* RequiredConstructor
*/
public StarFXDemoDocController() {}
@Override
public void initialize(URL url, ResourceBundle rb)
{
}
@FXML
private void buildSphereAction(ActionEvent event)
{
}
@FXML
private void setSimulationName()
{
}
}
FXMLLoader.load(getClass().getResource("/standalonedemo/resources/StarFXDemoDoc.fxml"));
有谁能帮我一下吗?
编辑/更新:
根据james_d的评论(谢谢你James,显然我已经盯着这个问题太久了……),我修复了控制器中的明显错误,并将SimNameField设置为TextField,而不是Label(并更新了上面的代码块以反映这一点)。我还将异常处理更改为使用PrintStackTrace。这些更改现在为我提供了以下堆栈跟踪:
javafx.fxml.LoadException: file:<properPathTo>/StandAloneDemo/dist/StandAloneDemo.jar!/standalonedemo/resources/StarFXDemoDoc.fxml:11
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:922)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at standalonedemo.StarFXDemo.start(StarFXDemo.java:35)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
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.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: standalonedemo.StarFXDemoDocController starting from SystemClassLoader[55 modules] with possible defining loaders null and declared parents [org.netbeans.MainImpl$BootClassLoader@97e1986, ModuleCL@1fa50985[org.netbeans.api.annotations.common], ModuleCL@7251b0ac[org.openide.awt], ModuleCL@7d1344a8[org.netbeans.api.progress], ModuleCL@26b9eb92[org.netbeans.swing.plaf], ModuleCL@7feb85da[org.openide.dialogs], ModuleCL@15c98cea[org.openide.nodes], ModuleCL@ed11c24[org.openide.windows], ModuleCL@621f6603[org.netbeans.swing.tabcontrol], ModuleCL@2a3ed4eb[org.netbeans.swing.outline], ...40 more]
at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:224)
at org.netbeans.ModuleManager$SystemClassLoader.loadClass(ModuleManager.java:722)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:920)
... 22 more
Caused by: java.lang.ClassNotFoundException: standalonedemo.StarFXDemoDocController
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 org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:222)
... 25 more
取出了第一个堆栈跟踪,因为它不再相关,并更新了几行代码(比如将包的导入添加到FXML中)。
一直在玩它。如果我移除控制器引用,GUI将按预期启动(因此我们知道FXML文件正在加载)。如果我实例化了一个Controller对象(在调用FXMLLoader.load(<...>))之前),它会按照预期进行实例化,并且我可以通过NetBeans调试器验证它不是null,这样我就知道Controller类是编译的,并且在类路径上。
那么为什么FXMLLoader找不到呢?我应该使用另一种方法来加载它吗?我曾想过在代码中创建controller对象并这样设置它,但当涉及到fx:controller语句时,这似乎会让NetBeans感到恼火(也就是说,如果您在FXML中有需要控制器的元素,而该语句不在其中,则NetBeans将其标记为不正确)。
<TextField fx:id="SimNameField" onMouseDragExited="#setSimulationName" />
@FXML
private Label SimNameField ;
我已经建立了一个asp.netmvc网页。我的所有操作,如:创建、编辑等...有自己的视图,除了删除,因为我正试图在Bootstrap的帮助下弹出一个模态。我通过jQuery/JavaScript向modal传递一个id,并将asp-action作为表单的属性,理论上它应该可以工作,但事实并非如此。 索引视图: 删除控制器中的操作: Javascript: 输入获取id作为名称的值: 调试时,它不
我有一个通过Interface Builder定义的布局约束视图。由于它们无法暂时停用,我决定通过拨打以下电话有选择地删除它们: 但是,之后约束仍然驻留在视图中。约束。此外,我还希望以编程方式添加约束(同样,因为我无法(取消)激活它们): 对我的方法的任何调用都会导致变量wasAdded的值NO。这也反映在用户界面上,它根本没有改变。 最后,我既不能以编程方式添加约束,也不能删除添加到情节提要的约
问题内容: 我一直在跟随一个教程,教科书向我保证这可以工作,但是 错误:[ng:areq]参数’SimpleController’不是一个函数,未定义 为什么?我掉毛了,在它上面上下移动,看不到问题。为什么出现未定义状态? 问题答案: 我的猜测是您使用的angular.js版本是更新的。 有一个重大变化,即: 默认情况下 , angular将不再寻找控制器。有关更多详细信息,请参见3f2232b5
我想了解一些关于Spring的东西。我正在尝试配置它,但是有些东西我不明白,因为Spring似乎不认识我的控制器。 这是我的web.xml 这就是servlet 控制器:
问题内容: 为什么JavaFX中没有ObservableQueue?如果我们查看FXCollection的Java 9文档(只是看一下8的变化),我们会看到用于创建Observable集,列表和映射的静态助手方法。还有一些创建Observable float和integer数组的方法。但是,无法创建ObservableQueue。Java中的Queue接口具有许多有趣的实现,包括ArrayDequ
我在试着用Kotlin的micronaut。我有这个: 我写了以下控制器测试: 但是测试失败,出现。 我已经对此进行了调试,在测试期间,从我所知的情况来看,在中没有找到限定符的bean。当我使用类启动应用程序时,我可以看到它找到并使路由可用。 这几乎是微型机器人的Hello世界,我不确定这里出了什么问题。