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

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

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

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

FXML

FXMLは、JavaFXに用意されているXMLベースのGUI記述言語です

Q&A

解決済

2回答

2797閲覧

JAVAFXラベルの表示エラー

daikimatsuzaki

総合スコア12

JavaFX

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

FXML

FXMLは、JavaFXに用意されているXMLベースのGUI記述言語です

0グッド

0クリップ

投稿2015/10/13 08:01

News.fxml

fxml

1<?xml version="1.0" encoding="UTF-8"?> 2 3<?import javafx.scene.control.*?> 4<?import java.lang.*?> 5<?import javafx.scene.layout.*?> 6<?import javafx.scene.layout.BorderPane?> 7 8<BorderPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.NewsController"> 9 <left> 10 <Pane minHeight="311.0" minWidth="236.0" prefHeight="365.0" prefWidth="409.0" BorderPane.alignment="CENTER"> 11 <children> 12 <Label fx:id="nowTime" text="d" layoutX="95.0" layoutY="14.0" prefHeight="44.0" prefWidth="220.0" /> 13 </children> 14 </Pane> 15 </left> 16</BorderPane>

NewsController.java

java

1package application; 2 3import javafx.fxml.FXML; 4import javafx.scene.control.Label; 5 6 7public class NewsController{ 8 @FXML 9 public Label nowTime; 10 @FXML 11 public void setLabel(){ 12 nowTime.setText("時間がかえる"); <--ここを反映 13 } 14}

Main.java

Java

1package application; 2 3import java.net.URL; 4 5import javafx.application.Application; 6import javafx.stage.Stage; 7import javafx.scene.Scene; 8import javafx.scene.control.Label; 9import javafx.scene.layout.BorderPane; 10import javafx.fxml.FXML; 11import javafx.fxml.FXMLLoader; 12 13 14public class Main extends Application { 15 16 @Override 17 public void start(Stage primaryStage) { 18 try { 19 URL fxml = getClass().getResource("News.fxml"); 20 FXMLLoader loader = new FXMLLoader(fxml); 21 BorderPane root = (BorderPane)FXMLLoader.load(fxml); 22 Scene scene = new Scene(root,400,400); 23 scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 24 primaryStage.setScene(scene); 25 primaryStage.setTitle("News"); 26 primaryStage.show(); 27 NewsController controller = loader.getController(); 28 controller.setLabel(); 29 30 } catch(Exception e) { 31 e.printStackTrace(); 32 } 33 } 34 public static void main(String[] args) { 35 launch(args); 36 37 } 38

参考 http://d.hatena.ne.jp/seraphy/20150411

setLabelの中身をfxmlにテキスト表示したく試しているのですが反映されず
エラーが出てnullpointerが出てしまします、どなたかご教授いただけないでしょうか

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

initializeメソッドを使うことで初期画面に出すことができました解決しました

投稿2015/10/15 15:07

daikimatsuzaki

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どのメソッドでNullポインタが返るのか示したほうがよいかと思います。

投稿2015/10/14 04:18

XCUBE

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daikimatsuzaki

2015/10/14 10:24

setLabel自体がnullポインタになります mainで呼び出している時にnullポインタになっています
XCUBE

2015/10/15 00:43

getControllerがnullになっていると推測されます。 loadメソッドを次のように変えてみてください。 BorderPane root = (BorderPane)FXMLLoader.load(fxml); ↓ BorderPane root = (BorderPane)loader.load();
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問