FXMLコントローラ内からステージを取得するには、以下の方法があります。
-
初期化メソッドを使用する方法: FXMLコントローラの初期化メソッドである
initialize()
メソッドをオーバーライドし、initialize()
メソッド内でステージを取得します。以下は例です:import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; import javafx.stage.Stage; public class MyController implements Initializable { @FXML private Button myButton; private Stage stage; @Override public void initialize(URL location, ResourceBundle resources) { stage = (Stage) myButton.getScene().getWindow(); } @FXML private void handleButtonClick(MouseEvent event) { // ステージを使用して何らかの処理を行う } }
initialize()
メソッド内でmyButton.getScene().getWindow()
を呼び出すことで、現在のFXMLコントローラが関連付けられているステージを取得できます。 -
イベントハンドラを使用する方法: FXMLコントローラ内でイベントハンドラメソッドを定義し、その中でステージを取得することもできます。以下は例です:
import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; import javafx.stage.Stage; public class MyController { @FXML private Button myButton; @FXML private void handleButtonClick(MouseEvent event) { Stage stage = (Stage) myButton.getScene().getWindow(); // ステージを使用して何らかの処理を行う } }
handleButtonClick()
メソッド内でmyButton.getScene().getWindow()
を呼び出すことで、ステージを取得できます。
これらの方法を使用することで、FXMLコントローラ内からステージを取得し、必要な処理を行うことができます。