Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将标签绑定到StringProperty时获取语法错误_Java_Javafx_Bind - Fatal编程技术网

Java 将标签绑定到StringProperty时获取语法错误

Java 将标签绑定到StringProperty时获取语法错误,java,javafx,bind,Java,Javafx,Bind,我刚刚开始学习javafx,我正在尝试制作一个简单的应用程序,在这个应用程序中,您可以输入一个文本字段,同时通过标签将其显示出来。 这是主要课程 package testing; import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import j

我刚刚开始学习javafx,我正在尝试制作一个简单的应用程序,在这个应用程序中,您可以输入一个文本字段,同时通过标签将其显示出来。 这是主要课程

package testing;

import java.io.IOException;

import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class testing extends Application {

    private Stage primaryStage;
    private BorderPane RootLayout;

    @Override
    public void start(Stage primaryStage) {
        this.primaryStage=primaryStage;
        this.primaryStage.setTitle("First Application");
        initRootLayout();
        initProjectTest();
    }

    public static void main(String[] args) {
        launch(args);
    }
    public Stage getPrimaryStage() {
        return primaryStage;
    }

    public void initRootLayout() {
        try{    FXMLLoader loader=new FXMLLoader();
            loader.setLocation(testing.class.getResource("view/RootLayout.fxml"));
            RootLayout=(BorderPane)loader.load();
            primaryStage.setScene(new Scene(RootLayout));
            primaryStage.show();
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }

    public void initProjectTest() {
        try {
            FXMLLoader loader=new FXMLLoader();
            loader.setLocation(testing.class.getResource("view/ProjectTest.fxml"));
            AnchorPane ProjectTest=(AnchorPane)loader.load();
            RootLayout.setCenter(ProjectTest);
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }
}
这是控制器类

package testing.view;

import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class ProjectTestController {

    @FXML
    private Label label1=new Label();
    @FXML
    private TextField textfield1=new TextField();


    label1.textProperty().bind(textfield1.textProperty());

}

如果我尝试通过一个按钮来实现它,每次单击按钮时文本都会更新(通过
onAction
函数),那么代码工作正常。但是,当我尝试绑定时,会出现语法错误。我试图寻找答案,但没有一个有语法错误

你可以在你的 TestOrthPrimeUngs/Cux>类的中间给我们一个说法吗?这是违法的。语句必须位于方法、构造函数或初始化块内部。无关:您正在手动创建
标签
文本字段
的实例,但它们用
FXML
注释。不要这样做。假设在FXML文件中有相应的
fx:id
属性,这些字段将由
fxmloader
注入。我建议你读一读。@Slaw谢谢。似乎我也需要学习java,因为我的基础知识还不清楚。在我创建了一个initialize方法之后,它就工作了。您有推荐的学习java的资源吗?是的,我的标签在FXMl文件中有FXID属性,但我手动创建了实例,因为我在某个地方读到它可能导致空指针异常。现在我明白了,当这个人没有链接到标签的FXML文件时,情况就是这样。再次感谢。一个简单的“Java教程”谷歌搜索会给你很多结果。例如,有一个网站。还有Oracle自己发布的教程:。Oracle教程仅更新为Java 8;我不知道这一点。