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

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

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

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

844閲覧

JavaFX, CSS ソース上での適用

IroIroShiritai

総合スコア20

JavaFX

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2018/05/02 05:05

編集2018/05/02 08:43

ChartのStyleをcssにて設定したいのですが、あまり上手く行かず問題点をご教授頂ければと思います。
IDE:NetBeansを使用しています。

  • 問題内容

ネットにて調べた結果、下記のような文で読み込めると思っておりましたが、上手くいきません。

Java

1rawWaveChart.getStylesheets().add(this.getClass().getResource("/css/LinChartNosymbol.css").toExternalForm());
  • rawWaveChartは、LineChartのインスタンスです。
  • メソッドの実行クラス FXMLControllerのパッケージは、.../adp/view, cssファイルLineChartNosymbol.cssのパッケージは、.../adp/cssとなります。
  • 実行した結果は、java.lang.NullPointerExceptionとなります。ソースコード上で設定する方法の間違いの箇所がわからず質問させて頂いております。
  • 他方法でのFXMLファイルでの設定は下記のようにすることでできることは確認しております。

css

1<AnchorPane ... stylesheets="@../css/LineChartNosymbol.css".../AnchorPane>

-階層構造のスクリーンショットを添付します。

![イメージ説明]

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

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

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

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

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

guest

回答1

0

ベストアンサー

メソッドの実行クラスFXMLControllerのパッケージ:
.../adp/view
cssファイルLineChartNosymbol.cssのパッケージ:
.../adp/css

とのことですので、指定方法が間違っているようです。

FXMLファイルは.../adp/viewにあると思います。FXMLファイルは

... stylesheets="@../css/LineChartNosymbol.css"...

となってますが、この意味はFXMLが存在するパッケージの一つ上のパッケージ(adp)の下のcssパッケージの下にcssがあるということですね。

対して以下の指定は

... .getClass().getResource("/css/LinChartNosymbol.css"). ...

パッケージの絶対パスを指定しています。つまりこう指定するならcssファイルは

.../adp/cssではなく
.../cssにないといけないことになります。

結局以下のように書く必要があると思います。

絶対パスでパッケージadp.cssを参照
... .getClass().getResource("/adp/css/LinChartNosymbol.css"). ...
Xのクラスがパッケージadp.viewにあるなら、そこからの相対でadp.cssを参照
... X.getClass().getResource("../css/LinChartNosymbol.css"). ...

投稿2018/05/02 06:40

KSwordOfHaste

総合スコア18394

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

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

IroIroShiritai

2018/05/02 07:45

下記3パターンを試しましたが、同様な結果でした。"/adp/css/LinChartNosymbol.css", "../css/LinChartNosymbol.css","@../css/LinChartNosymbol.css"また、viewパッケージの直下にcssファイルを持ってきて"LinChartNonSymbol.css"としてみましたが同様の結果でした。他の環境としては、Buttonに下記のようなメソッドを紐づけていて、その中で上記の処理を実施しています。 ```Java @FXML private void openFile (ActionEvent event) { //この中で実施   } ```
KSwordOfHaste

2018/05/02 07:52 編集

例えばですが、LinChartNosymbol.cssってtypoのような気がするのですが、実際にはLineChartNosymbol.cssだったりしませんか? つまりLineの'e'が抜けてませんか? --- あ・・・自分の回答自体もtypoがそのままになってますね!
IroIroShiritai

2018/05/02 08:00

ご指摘ありがとうございます。再度確認してみましたが同様でした。
KSwordOfHaste

2018/05/02 08:10

無用な混乱を避けるため、Netbeansのプロジェクトフォルダーでcssと上記コードが書かれているJavaソースがどのような階層になっているかのスクリーンショットを貼り付けてはいかがでしょうか?せっかく質問文に具体的に書いておられるのでちょっと申し上げにくいところではありますが・・・
IroIroShiritai

2018/05/02 09:05

再度書き直して、確認をしました。下記にて設定ができました。最初のご指摘の通りであり、私がちゃんとトレース出来ていなかったので、お手を取らせてしました。お時間いただきありがとうございました。 rawWaveChart.getStylesheets().add(this.getClass().getResource("/adp/css/LineChartNosymbol.css").toExternalForm());
KSwordOfHaste

2018/05/02 23:38 編集

ほとんど正解に近づいておられたと思うのですが、typoなど意外に気づきにくく、時間をとられたりしますね。自分もたまにありますw;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問