質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

受付中

異なるウィンドウ間で値を参照できない

kirikiridai
kirikiridai

総合スコア7

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

2回答

0評価

0クリップ

5018閲覧

投稿2016/08/06 07:49

編集2022/01/12 10:55

###前提・実現したいこと

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/ツール等のバージョンなど)
より詳細な情報

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。