###前提・実現したいこと
JavaFXでメインウィンドウと別ウィンドウに設定画面を持ったシステムを作っています。
どちらも同じファイルControllerとしています。
設定画面に値を入力後、メインウィンドウで値を確認した所Nullが確認されました。
###発生している問題・エラーメッセージ
メインウィンドウ側で別ウィンドウ.テキストフィールド.getText()としましたがNullになってしまいます。
また、別ウィンドウで値が正しく入力された状態で、配列に値を代入しそれをメインウィンドウ側で確認してもNullになってしまいます。
別ウィンドウの値を正しく取得する方法を教えて下さい。
###該当のソースコード
Main.java public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws IOException { AnchorPane root; root = (AnchorPane)FXMLLoader.load(getClass().getResource("sample.fxml")); Scene scene = new Scene(root,1500,700); stage.setScene(scene); stage.show(); } }
SampleController.java public class SampleController { @FXML GridPane gridp; AnchorPane syuturyokuroot; Stage syuturyokustage = new Stage(); @FXML void setteisyori() throws IOException{ syuturyokuroot = (AnchorPane)FXMLLoader.load(getClass().getResource("settei.fxml")); Scene syuturyokuscene = new Scene(syuturyokuroot,800,700); syuturyokustage.setScene(syuturyokuscene); syuturyokustage.show(); } @FXML void kakuninsyori(){ System.out.println(((TextInputControl) gridp.getChildren().get(0)).getText()); } }
sample.fxml <AnchorPane fx:id="anchor0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.SampleController"> <children> <ScrollPane fx:id="scr" hbarPolicy="ALWAYS" layoutX="73.0" layoutY="178.0" prefHeight="400.0" prefWidth="1300.0" vbarPolicy="NEVER"> <content> <AnchorPane fx:id="anchor1" minHeight="0.0" minWidth="400.0" prefHeight="400.0" prefWidth="400.0"> <children> </children> </AnchorPane> </content> </ScrollPane> <Button fx:id="btn1" layoutX="130.0" layoutY="110.0" mnemonicParsing="false" onAction="#setteisyori" text="settei" /> <Button fx:id="btntori" layoutX="244.0" layoutY="110.0" mnemonicParsing="false" onAction="#kakuninsyori" text="kakunin" /> </children> </AnchorPane>
settei.fxml <AnchorPane fx:id="anchorsyutu" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="471.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.SampleController"> <children> <ScrollPane hbarPolicy="NEVER" layoutX="56.0" layoutY="200.0" prefHeight="200.0" prefWidth="368.0" vbarPolicy="ALWAYS"> <content> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="5005.0" prefWidth="353.0"> <children> <GridPane fx:id="gridp" gridLinesVisible="true" layoutX="1.0" layoutY="2.0" prefHeight="5000.0" prefWidth="351.0"> <columnConstraints> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> </columnConstraints> <children> <TextField text="値" GridPane.columnIndex="0" GridPane.rowIndex="0" /> </children> <rowConstraints> <RowConstraints /> </rowConstraints> </GridPane> </children> </AnchorPane> </content> </ScrollPane> </children> </AnchorPane>
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。