###前提・実現したいこと
はじめまして, 最近JavaFXを学び始めた者です.
SceneBuilderでLabelを配置したfxmlをJavaFXで利用する際, SceneBuilderで書いたLabelのテキストをJavaFX側で起動時に改めてsetTextしたいです. 例えば,SceneBuilderでLabelにHelloとセットし, それをJavaFX側でGood
Morningと改めてセットし, 起動時画面にGood Morningと表示したいのですが上手くいかず, Helloのまま表示されてしまいます.
目的は, 最終的にLabelにBackgroundImageとして画像をセットして画面に表示させるためで, まずはテキストだけでもセットしてみようと思った次第です.
出だしでつまずいてしまい困っています, よろしくお願いします.
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
//JavaFX package sample3; import java.net.URL; import java.util.ResourceBundle; import javafx.application.Application; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class Sample3 extends Application implements Initializable{ @FXML private Label label; @Override public void start(Stage primaryStage) { try { primaryStage.setTitle("Sample3"); VBox root = FXMLLoader.load(getClass().getResource("../../fxml/sample3.fxml")); primaryStage.setScene(new Scene(root)); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } @Override public void initialize(URL url, ResourceBundle rb) { label.setText("Good Morning"); } public static void main(String[] args) { launch(args); } } //FXML <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Label?> <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> <VBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1"> <children> <Label fx:id="label" alignment="CENTER" text="Good Morning"> <font> <Font size="63.0" /> </font> </Label> </children> </VBox>
###試したこと
いろいろと調べた結果, ソースコードに通りアプリ起動時に初期化するinitializeメソッドにsetTextを記述すれば解決出来ると思われたのですが, 上手くいきませんでした.
###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse4.7.0
SceneBuilder2.0
Mac

回答1件
あなたの回答
tips
プレビュー