• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:java 格納した乱数それぞれにボタンを付け配置)

Javaでボタンに乱数を紐付け、順番に押すゲームを作りたい

このQ&Aのポイント
  • Javaで5行×5列のボタンを配置し、ボタンごとに異なる乱数を紐付ける方法について教えてください。
  • ボタンを順番に押していく処理について教えてください。
  • ボタンに対応した画像を表示させる方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

補足への回答です。 たぶん、それで良いです。もしかしたら、try-catch で挟まないといけないかもしれませんが。(ファイル入力があるため) 今のところ、画像ファイルはソースと同じフォルダに置きます。 ボタンは、コンストラクタに、数字が指定されて初期化されるので、 半自動的に画像ファイルの名前を選択しています。 当然、その画像ファイルは自前で用意する必要があります。これが一番面倒だと思います。

noname#198651
質問者

お礼

何度も教えて頂きありがとうございました! ここまで教えて頂いたので、あとはがんばってやってみます! ありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.4

 横から失礼します >1.png、2.png、...25.png >1_off.png、2_off.png、... 25_off.png >というのはどの部分に入れていくのでしょうか。  JButton には setIcon setPressedIcon setSelectedIcon setRolloverIcon setRolloverSelectedIcon setDisabledIcon setDisabledSelectedIcon  など、Iconを設定する細かいメソッドがたくさんありますので、それらを活用した方が簡単だと思いますよ

noname#198651
質問者

お礼

ご回答ありがとうございます! そちらのメソッド調べてしてみます! 何度も教えてくださった方がいるのでそちらの方をベストアンサーにさせて頂きました。 また何かで質問を出すと思いますので機会がありましたらよろしくお願いします。

すると、全ての回答が全文表示されます。
回答No.2

画像ファイルがないので、試していませんが。 JButton のコンストラクタに、 new JButton(Icon icon) というのがあるので、 super("" + number); を、 super(new ImageIcom("" + number + ".png")); のように変更すれば良いと思います。この場合、1.png、2.png、... を、アイコン画像として使用します。 同じように、マウスクリック時のアクションを登録しているところで、 バックグラウンドの色を変更するのではなく、 b.setIcon(new ImageIcon("" + number + "_off.png")); とします。1_off.png、2_off.png、... の画像に変更するわけです。

noname#198651
質問者

補足

public void mouseClicked(MouseEvent e) { if (pressed[b.getNumber() - 1]) { b.setIcon(new ImageIcon("" + number + "_off.png")); b.setEnabled(false); pressed[b.getNumber()] = true; } } public NumberdButton(int number) { super(new ImageIcom("" + number + ".png")); this.number = number; } でよいのでしょうか。 1.png、2.png、...25.png 1_off.png、2_off.png、... 25_off.png というのはどの部分に入れていくのでしょうか。 質問ばかりで恥ずかしいですが、ご教授お願いします。

すると、全ての回答が全文表示されます。
回答No.1

GUI はあまり得意ではありません。 例えば、こんな感じでしょうか。 PressButtonToOrder.java という名前で保存します。 http://pastebin.com/dYWqH0Wq private boolean[] pressed = new boolean[5 * 5 + 1]; というのが工夫で、pressed[0] = true; 以降の添字は false にしておいて、ボタンの数字を添え字と照合して、 pressed[前の数字] == true の時だけ、ボタンが変化するようにしています。

noname#198651
質問者

補足

2回もご回答ありがとうございます。 追加でお聞きしたいのですが、 表示された数字に、画像をそれぞれ当てはめる方法をよろしければ教えて頂けないでしょうか。 1 =画像の1、16 = 画像の16という風にそれぞれにあてはめていきたいです。 class NumberdButton extends JButton {} の中にImageIconを使えばいいのかなと思いしてみたのですが、ランダムな数字にくっつけていく方法がわかりません。 お手数ですが、ご教授よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A