获得“表达预期”的错误?

时间:2014-09-04 10:50:13

标签: java mysql javafx

HiEveryone,

我是Javafx的初学者并且正在学习如何从某人的教程制作应用程序,现在问题是......它给我一个错误Expression expected?那是什么意思 ?任何人都可以解决我的问题吗?..

查看此SCREENSHOT

这是我的源代码:

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

public class Main extends Application {

    Stage primaryStage;
    BorderPane rootLayout;

    @Override
    public void start(Stage primaryStage){
        this.primaryStage=primaryStage;
        primaryStage.setTitle("Address App");

        initSample2Layout();
        showSample();
    }

    public void initSample2Layout(){
        try{

            //here loading files from FXML..
            FXMLLoader loader=new FXMLLoader();
            loader.setLocation(Main.class.getResource("sample/Sample2.fxml"));
            rootLayout=(BorderPane).loader.load();
            Scene scene=new Scene(rootLayout);
            primaryStage.setScene(scene);
            primaryStage.show();

        }catch(Exception e){e.printStackTrace();}
    }

    public void showSample(){
        try{

            //here we're loading files from FXML..
            FXMLLoader loader2=new FXMLLoader();
            loader2.setLocation(Main.class.getResource("sample/sample.fxml"));
            AnchorPane ap=(AnchorPane).loader.load();
            rootLayout.setCenter(ap);

        }catch(Exception e){e.printStackTrace();}
    }

    public Stage getPrimaryStage(){
        return primaryStage;
    }

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

2 个答案:

答案 0 :(得分:1)

这是无效的语法:

rootLayout=(BorderPane).loader.load();

如果您想要转换为BorderPane,请执行:

rootLayout=(BorderPane)loader.load();

同样适用于AnchorPane ap=(AnchorPane).loader.load();,应该更改为AnchorPane ap=(AnchorPane)loader2.load();

答案 1 :(得分:0)

rootLayout=(BorderPane).loader.load();之前有loader个额外的字符。

您可能需要以下内容:

rootLayout=(BorderPane) loader.load();