🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaFX

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

Java

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

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

FXML

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

Q&A

解決済

1回答

1941閲覧

JavaFxで画像が表示されない

hokusou7500

総合スコア18

JavaFX

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

Java

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

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

FXML

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

0グッド

0クリップ

投稿2020/12/31 04:51

現状

JavaFXを使ってGUIアプリケーションを開発中です。
今回が初めてのJavaFXを用いての開発になるので勉強しながらやっています。

IntellijにSceneBuilderを導入して作っているのですが、画像を表示しようとしてSceneBuilder上で追加してもいざ実行すると何も表示されません。
以下にSceneBuilderと実行時のスクショ、fxmlファイルのソースを添付させていただきます。お力添えをいただきますようよろしくお願い致します。

スクショ・コード

SceneBuilder上での表示
SceneBuilder上

実行画面
実行画面

fxmlコード

fxml

1<?xml version="1.0" encoding="UTF-8"?> 2 3<?import javafx.scene.image.*?> 4<?import javafx.scene.layout.*?> 5 6<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" style="-fx-background-color: white;" xmlns="http://javafx.com/javafx/11.0.2" xmlns:fx="http://javafx.com/fxml/1"> 7 <children> 8 <ImageView fitHeight="413.0" fitWidth="566.0" layoutX="138.0" layoutY="44.0" pickOnBounds="true" preserveRatio="true"> 9 <image> 10 <Image url="@../../RoundAboutBrunchImage.png" /> 11 </image> 12 </ImageView> 13 </children> 14</AnchorPane>

#バージョン・開発環境等
jdk 13.0.2
javaFx-sdk-11.0.2

Intellij IDEA 2020.02

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

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

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

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

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

guest

回答1

0

ベストアンサー

https://docs.oracle.com/javase/jp/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#location_resolution

場所解決演算子(属性値への@接頭辞で表される)は、属性値を単純な文字列ではなく、現在のファイルを基準にした相対的な場所として処理する必要があることを指定するために使用されます。
たとえば、次のマークアップでは、ImageViewが作成され、現在のFXMLファイルに対する相対パスにあると想定されるmy_image.pngからイメージ・データが移入されます。
<Image url="@my_image.png"/>

ということなので、<Image url="@../../RoundAboutBrunchImage.png" />は、fxmlファイルからの相対パス../../RoundAboutBrunchImage.pngにイメージファイルが存在するということ。
実行画面を表示したJavaソースやディレクトリ構成の提示がないので想像でしかありませんが、実行時のclasspathから../../RoundAboutBrunchImage.pngファイルを参照できていない、ということかと。

先に書いたように、きちんと動作するJavaソースとディレクトリ構成を提示すればもう少し突っ込んだ回答を得られるかもしれません。

投稿2021/01/01 07:28

shiketa

総合スコア4054

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

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

hokusou7500

2021/01/01 08:17

ご回答ありがとうございます。 情報が不足した質問になってしまっており申し訳ありません。 ただ、回答者様に頂いた情報をもとに画像の配置場所を変えたところ画像が表示されるようになりました。 リファレンスをもう少しちゃんと読もうと思います...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問