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

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

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

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

Java ME

Java ME(Java Platform, Micro Edition)はリソースが制限されたデバイス(携帯電話、PDA、テレビなど)用につくられたJavaプラットフォームである。

JavaFX

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

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

4806閲覧

JavaFXで画像を表示させる方法がわからない

退会済みユーザー

退会済みユーザー

総合スコア0

canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

Java ME

Java ME(Java Platform, Micro Edition)はリソースが制限されたデバイス(携帯電話、PDA、テレビなど)用につくられたJavaプラットフォームである。

JavaFX

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

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/03/07 10:41

前提・実現したいこと

画面に画像を表示させたい。

発生している問題・エラーメッセージ

アプリケーションの実行時に画像が表示されない。(Windowのみ表示される)
エラーメッセージ:なし

該当のソースコード

package application;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.stage.Stage;

public class Main extends Application {

public void start(Stage primaryStage) { Group root = new Group(); Scene scene = new Scene(root); primaryStage.setScene( scene ); Canvas canvas = new Canvas(400, 200); root.getChildren().add( canvas ); GraphicsContext gc = canvas.getGraphicsContext2D();  Image hoge= new Image("application/hoge.png"); //➀元々は("hoge.png")で記述していた gc.drawImage(hoge, 180, 100); primaryStage.show(); } public static void main(String[] args) { launch(args); }

}

###使用言語・ツール Java Eclipse ### 試したこと 元々はアプリケーションの実行時にエラーが出ていましたが java.lang.illegalargumentexception:  画像の配置場所を詳しく指定することでエラーにはならなくなりました。・・・➀ ### 補足情報(FW/ツールのバージョンなど) Java8(jdk1.8.0_221) Eclipse_4.8_Photon

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

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

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

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

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

guest

回答1

0

ベストアンサー

# URLは変えましたが、提示のソースでイメージは描画されましたよ。単にCanvasからはみ出しているだけ、とか?

ImageのコンストラクタはURLを欲しているようなので、file://とかのちゃんとしたURLにしてあげるといいのかもしれませんね。

java

1 Image hoge= new Image( 2    this.getClass().getResource("application/hoge.png").toString()); 3      //➀元々は("hoge.png")で記述していた

ImageViewでは不足でしょうか? Canvasへの出力もしてみましたけど。

java

1import javafx.application.Application; 2import javafx.scene.Scene; 3import javafx.scene.canvas.Canvas; 4import javafx.scene.control.Label; 5import javafx.scene.image.Image; 6import javafx.scene.image.ImageView; 7import javafx.scene.layout.HBox; 8import javafx.scene.layout.VBox; 9import javafx.stage.Stage; 10 11public class xxFxImage { 12 public static void main(final String[] args) throws Exception { 13 Application.launch(App.class, args); 14 } 15 16 public static class App extends Application { 17 @Override 18 public void start(final Stage stage) throws Exception { 19 final String imageUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/226px-Duke_%28Java_mascot%29_waving.svg.png"; 20 final Image image = new Image(imageUrl, false); 21 final ImageView imageView = new ImageView(image); 22 23 final Canvas canvas = new Canvas(image.getWidth(), image.getHeight()); 24 canvas.getGraphicsContext2D().drawImage(image, 0, 0); 25 26 stage.setScene( 27 new Scene( 28 new HBox( 29 new VBox(new Label("ImageView"), imageView), 30 new VBox(new Label("Canvas"), canvas)))); 31 stage.show(); 32 } 33 } 34} 35

投稿2020/03/07 12:20

編集2020/03/07 12:29
shiketa

総合スコア3971

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

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

退会済みユーザー

退会済みユーザー

2020/03/07 15:03

ご回答ありがとうございます。 使用していた画像が思っていたよりも大きな画像でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問