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

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

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

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

1回答

3643閲覧

JButtonで画像を表示させたい

tani4

総合スコア0

Java

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2020/12/28 07:22

##前提・実現したいこと

お世話になります。

GUIで簡単なゲームを作ってみたいなと思い、こちらのサイトを参考にジャンケンゲームを作りました。
https://original-game.com/java-janken-game-program/

作るまではできたのですが、ここにオジリナル要素を足していきたいと思い
試しに「グー」と文字が書かれたボタンを画像に変えたいと思いました。

しかし、用意した画像が表示されずにボタンが無地のものになってしまいます。
画像自体をボタンにするのではなく、ボタンの上で画像を表示する形で考えています。

##該当のソースコード

変更前

Java

1JButton btnChoki = new JButton("グー"); 2btnChoki = setButton(btnGu); 3footerPanel.add(btnGu, BorderLayout.WEST);

変更後

Java

1ImageIcon icon = new ImageIcon("img/janken_gu.png"); 2JButton btnGu = new JButton(icon); 3btnGu = setButton(btnGu); 4footerPanel.add(btnGu, BorderLayout.WEST);

##試したこと
画像のパスが間違っているのかと思いましたが、Playerクラスと同じ階層にあるimgフォルダの中にjanken_gu.pngが入っているため正しいと考えています。

また、画像が大きいせいかと思い少し小さめに40pxに縮小したものを使用しましたが相変わらず表示されませんでした。
よろしくお願いいたします。

##実行環境
OS:Windows10
JDK:14
Eclipse:Eclipse IDE for Java Developers - 2020-09

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

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

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

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

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

guest

回答1

0

と思いましたが、Playerクラスと同じ階層にあるimgフォルダの中にjanken_gu.pngが入っているため正しいと考えています。

Playerクラスとは、Player.javaファイルなのか、Player.classファイルなのか、どちらなんでしょうか。
Player.classファイルと同じ場所に置いて、Class#getResource()で参照するのがよろしいかと。

$ tree . ├── img │   └── gu.png ├── xxGuButton.class └── xxGuButton.java

java

1import javax.swing.*; 2import java.awt.*; 3 4public class xxGuButton 5 extends JFrame { 6 public static void main(String[] args) throws Exception { 7 new xxGuButton().setVisible(true); 8 } 9 10 xxGuButton() throws Exception { 11 final JPanel panel = new JPanel(); 12 panel.setLayout(new FlowLayout()); 13 14 // ImageIcon icon = new ImageIcon("img/gu.png"); 15 ImageIcon icon = new ImageIcon(this.getClass().getResource("/img/gu.png")); 16 System.out.println(icon.getImage()); 17 final JButton buttonA = new JButton(icon); 18 panel.add(buttonA); 19 20 add(panel, BorderLayout.CENTER); 21 setSize(150, 200); 22 } 23}

投稿2020/12/29 03:38

shiketa

総合スコア3971

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問