如何在JavaFX中向公共类控制器内的另一个按钮添加功能?
我有一个主屏幕,一个按钮打开另一个窗口。然而,我不知道如何使按钮关闭第二个窗口。我得到的错误是因为我试图处理同一类中的两个按钮(handleButtonClick)。有人可以帮助我如何声明和添加第二个按钮的功能?soncend按钮调用closePopUp如何在JavaFX中向公共类控制器内的另一个按钮添加功能?,java,javafx,Java,Javafx,我有一个主屏幕,一个按钮打开另一个窗口。然而,我不知道如何使按钮关闭第二个窗口。我得到的错误是因为我试图处理同一类中的两个按钮(handleButtonClick)。有人可以帮助我如何声明和添加第二个按钮的功能?soncend按钮调用closePopUp public class Controller { public Button signupB; public Label label1; public Button closePopUp; public
public class Controller {
public Button signupB;
public Label label1;
public Button closePopUp;
public void handleButtonClick() {
System.out.println("Test one");
label1.setText("This option is not available in the beta version");
label1.setOpacity(1);
try {
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(getClass().getResource("sceneNotAvailable.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 630, 400);
Stage stage = new Stage();
stage.setTitle("New Window");
stage.setScene(scene);
stage.show();
} catch (IOException e) {
Logger logger = Logger.getLogger(getClass().getName());
logger.log(Level.SEVERE, "Failed to create new Window.", e);
}
}
}
嗨,伙计们,我找到了解决这种情况的办法。我对JavaFX非常陌生,但我所做的是为每个按钮声明两个不同的类。我不确定这是否是正确的方法,但它是有效的
public void handleButtonClick() {
label1.setText("This option is not available in the beta version");
label1.setOpacity(1);
try {
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(getClass().getResource("sceneNotAvailable.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 630, 400);
Stage stage = new Stage();
stage.setTitle("New Window");
stage.setScene(scene);
stage.show();
} catch (IOException e) {
Logger logger = Logger.getLogger(getClass().getName());
logger.log(Level.SEVERE, "Failed to create new Window.", e);
}
}
public void Button1Action(ActionEvent actionEvent) {
Stage stage = (Stage) closePopUp.getScene().getWindow();
stage.close();
}
看起来您需要某种类型的
if语句
和类似于stage.isShowing()
。java命名约定,请注意,您是100%正确的!这就是我现在要做的。我还在学习。谢谢你的提示。