首页 / JAVA / 从JavaFX开始:无法将javafx.scene.control.Label字段application.SceneController.myLabel设置为javafx.scene.text.Tex
从JavaFX开始:无法将javafx.scene.control.Label字段application.SceneController.myLabel设置为javafx.scene.text.Tex
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从JavaFX开始:无法将javafx.scene.control.Label字段application.SceneController.myLabel设置为javafx.scene.text.Tex,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3571字,纯文字阅读大概需要6分钟。
内容图文
![从JavaFX开始:无法将javafx.scene.control.Label字段application.SceneController.myLabel设置为javafx.scene.text.Tex](/upload/InfoBanner/zyjiaocheng/745/9c22765946e64fd4b24c6192a5e529bf.jpg)
我开始使用JavaFX.
当我执行我的程序时,错误发生,在我尝试这样做之前,它工作正常并且按钮点击工作,但那是在我打算使按钮单击更改文本之前.
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.SceneController">
<children>
<AnchorPane layoutX="-100.0" layoutY="-224.0" prefHeight="572.0" prefWidth="430.0">
<children>
<Button layoutX="205.0" layoutY="253.0" mnemonicParsing="false" onAction="#handleActionButton1" text="Do you want swag?" />
<Text fx:id="myLabel" layoutX="280.0" layoutY="339.0" strokeType="OUTSIDE" strokeWidth="0.0" text="My text will change!" />
</children>
</AnchorPane>
</children>
</AnchorPane>
那就是FXML,你可以看到文字是“我的文字会改变!”.在Eclipse的FXML文本编辑器中,它给了我这个错误:“你不能将’Text’分配给控制器字段’Label’”.
这是我的SceneController类:
package application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class SceneController{
@FXML
private Label myLabel;
@FXML
public void handleActionButton1(ActionEvent event){
System.out.println("Hello World!");
myLabel.setText("Hello World!");
}
}
正如我上面提到的,在我有一个标签之前,它会在控制台上成功输出“Hello World”,但现在它会这样做,但是没有执行我的Java应用程序,它给了我一个很长的错误:
javafx.fxml.LoadException:
/C:/Users/Neil/development/JavaFX/bin/application/appfxml.fxml:14
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at application.Main.start(Main.java:15)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$51/1299755900.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$45/1051754451.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$47/1698159280.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$46/1775282465.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/1109371569.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Can not set javafx.scene.control.Label field application.SceneController.myLabel to javafx.scene.text.Text
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at javafx.fxml.FXMLLoader.injectFields(Unknown Source)
解决方法:
在FXML中,您已经定义了一个Text,在Controller中,您尝试将其用作Label.
stackTrace(错误)在它的声音顶部喊它:
Can not set javafx.scene.control.Label field
application.SceneController.myLabel to javafx.scene.text.Text
在控制器中,您需要将myLabel定义更改为
@FXML
private Text myLabel;
内容总结
以上是互联网集市为您收集整理的从JavaFX开始:无法将javafx.scene.control.Label字段application.SceneController.myLabel设置为javafx.scene.text.Tex全部内容,希望文章能够帮你解决从JavaFX开始:无法将javafx.scene.control.Label字段application.SceneController.myLabel设置为javafx.scene.text.Tex所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。