Java 在静态方法中交换场景?

Java 在静态方法中交换场景?,java,javafx,controller,Java,Javafx,Controller,我需要用静态的方法改变场景。我正在尝试以下代码: Parent root = FXMLLoader.load(getClass().getResource("/view/AdPage.fxml")); Main.getMainStage().setScene(new Scene(root)); 由于getClass()方法不是静态的,因此无法编译此代码。我能做什么?除了明显的“不要为此使用静态方法”之外,你可以用ClassName.class代替getClass(),其中ClassName是此

我需要用静态的方法改变场景。我正在尝试以下代码:

Parent root = FXMLLoader.load(getClass().getResource("/view/AdPage.fxml"));
Main.getMainStage().setScene(new Scene(root));

由于getClass()方法不是静态的,因此无法编译此代码。我能做什么?

除了明显的“不要为此使用静态方法”之外,你可以用
ClassName.class
代替
getClass()
,其中
ClassName
是此代码所在的类的名称。为什么“不为此使用静态方法”我有一个静态方法,它显示一个gridpane,在该gridpane中有按钮。单击按钮时,场景将被更新。方法是静态的,因为它必须由其他类使用。有没有办法做到这一点?这是控制器的行为,因此使其保持静态会大大降低您重用它的能力(假设您希望在同一应用程序中使用两个或多个实例…)。(一般来说,我认为,在UI应用程序中,除了常量之外,只有静态应用才是非常高级程序员应该做的,当他们确信知道他们在做什么时)。因此,通常你应该使这成为一个实例方法,并与任何需要访问的对象共享一个类的实例。但这是你的应用程序——你可以用任何你想用的方式来做。也可以看看其他类似的方法。