独学でJavaFXを学んでいる者です。初歩的な内容ですが、調べたとおりにやってもエラーが出てしまいました。ご協力いただけたら幸いです。
実行環境 - NetBeans
目的 - FXML内のPolygonオブジェクトをJavaプログラム内で変数として使用したいと考えています。
問題 - NullPointerException が出ます
実行内容
1、FXML内のGridPaneにおいてControllerを指定「 fx:controller="fxmltest.FXMLtest"」
2、使用したい要素に以下を記入「fx:id = "topButton"」
3、Javaプログラムにおいて「@FXML Polygon topButton;」と宣言
FXML内でPolygonクラスを用いて三角型のボタンを作成しています。
4、Javaプログラムにて「String str = topButton.getId();」を実行
NullPointerExceptionということは、FXMLとJavaプログラムの連携が上手くいっていないのかな、と考えてはいます。
何卒宜しくお願いします。
※追記 2/23 22:40
指摘して頂いた箇所について補足したいと思います。
1、FXMLファイル
動作 - GridPane grid = FXMLLoader.load(略); として表示した際は異常なし。
ファイル名 - ChooseDirection.fxml
ファイル内容 - 以下。閉じタグなどは省略しています。
<GridPane fx:id="direction"
stylesheets="@ChooseDirection.css"
xmlns="http://javafx.com/javafx/8"
xmlns:fx="http://javafx.com/fxml/1"
fx:controller="fxmltest.FXMLtest">
GridPane内の子要素として、Polygonオブジェクトを有します。
<Polygon fx:id="upButton" stroke="BLACK" strokeType="INSIDE" styleClass="triangle">
2、Javaファイル FXMLtest.java import文などは省略しています。
public class FXMLtest extends Application {
@FXML
private Polygon downButton;
@Override
public void start(Stage stage) throws Exception {
String str = downButton.getId();
System.out.println(str);
としています。
3、initialize メソッドについて
参考にした書籍では initialize メソッドについて触れていなかったため、今回は使用していません。
一度だけ呼び出すことを明示したい際に使用すればよいもの、と認識していますが、誤りなどあればご指摘頂いたく存じます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/23 13:45
2018/02/23 14:52
2018/02/23 16:03
2018/02/23 16:20 編集
2018/02/26 00:03