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);
}
}
答案 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();