javaで「カップル」というトランプゲームを作っているのですが、背景色を設定する所までは行きましたが、表示されるはずのボタン(スタート、ランキング、ログアウト)が表示されず困っています・・・。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.*;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;
import java.awt.Graphics;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.*;
public class narabi2 extends JPanel{
JButton btn1,btn2,btn3;
static Image img[] = new Image[52];
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(900,840);
f.getContentPane().setBackground(new Color(0,100,0));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setResizable(true);
f.setVisible(true);
new narabi2();
}
public narabi2(){
btn1 = new JButton("スタート");
this.add(btn1);
btn1.addActionListener(new ev());
btn2 = new JButton("ランキング");
this.add(btn2);
btn2.addActionListener(new ev());
btn3 = new JButton("ログアウト");
this.add(btn3);
btn3.addActionListener(new ev());
JFrame f = new JFrame();
f.setSize(900,840);
f.getContentPane().setBackground(new Color(0,100,0));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setResizable(true);
f.setVisible(true);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
int i;
int x = 0,y=0;
for (i = 0; i < 52; i++) {
g.drawImage(img[i], x, y, null);
x = x + 100;
if(x>=900){
x=0;
y=y+140;
}
}
}
class ev implements ActionListener{
public void actionPerformed(ActionEvent m){
if(m.getSource()==btn1) //スタート
{
// 画像ファイルの読み込み
int i, j;
int no = 0;
String c[] = {"s","h","c","d"};
try {
for(i = 0; i < 4; i++) {
for(j = 1; j <= 13; j++) { //String filename = "cards.png";
String filename = String.format("cards/%s%02d.png", c[i], j);
img[no] = ImageIO.read(new File(filename));
no++;
}
}
}
catch(Exception e) {
System.out.println(e);
System.exit(0);
}
// シャッフル
Image w;
for (i = 51; i >= 0; i--) {
j = (int)(Math.random() * (i + 1));
w = img[i];
img[i] = img[j];
img[j] = w;
}
}
/*else if(m.getSource()==btn2) //ランキング
{
}
else if(m.getSource()==btn3) //ログアウト
{
}
}
}*/
btn2,3はやらなくていい所です。更にはbtn1(スタート)が押されたときに、トランプ52枚が全て表示されるようにしたいのですが、ボタンが表示されないがため確認出来ておりません。
色々とご不便をお掛けしますが例などを挙げてもらえるととても助かります。宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
略
:
f.setSize(900,840);
f.getContentPane().setBackground(new Color(0,100,0));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setResizable(true);
f.setVisible(true);
f.add(this);//パネルコンポーネントをフレームへ追加する
}
:
略
この回答への補足
teketonさん、回答ありがとうございます。
ご指摘頂いたように修正したところ、ボタンが表示されました。
早速、スタートボタンをクリックしてトランプ52枚表示されるか試してみたのですが、
1枚も表示されず、苦労してます。原因があるとすればどのあたりでしょうか?
何度も質問してしまって申し訳ございませんが、何卒よろしくお願い致します。
以下は、修正したプログラムです。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.*;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;
import java.awt.Graphics;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.*;
public class narabi2 extends JPanel{
JButton btn1,btn2,btn3;
static Image img[] = new Image[52];
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setResizable(true);
f.setVisible(true);
new narabi2();
}
public narabi2(){
btn1 = new JButton("スタート");
this.add(btn1);
btn1.addActionListener(new ev());
btn2 = new JButton("ランキング");
this.add(btn2);
btn2.addActionListener(new ev());
btn3 = new JButton("ログアウト");
this.add(btn3);
btn3.addActionListener(new ev());
JFrame f = new JFrame();
f.setSize(900,840);
f.getContentPane().setBackground(new Color(0,100,0));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setResizable(true);
f.setVisible(true);
f.add(this);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
btn1 = new JButton("スタート");
this.add(btn1);
btn1.addActionListener(new ev());
btn2 = new JButton("ランキング");
this.add(btn2);
btn2.addActionListener(new ev());
btn3 = new JButton("ログアウト");
this.add(btn3);
btn3.addActionListener(new ev());
setBackground(new Color(0,100,0));
int i; //カードを並べる処理
int x = 0,y=0;
for (i = 0; i < 52; i++) {
g.drawImage(img[i], x, y, null);
x = x + 100;
if(x>=900){
x=0;
y=y+140;
}
}
}
class ev implements ActionListener{
public void actionPerformed(ActionEvent m){
if(m.getSource()==btn1) //スタート
{
//public static void main(String[] args) {
// 画像ファイルの読み込み
int i, j;
int no = 0;
String c[] = {"s","h","c","d"};
try {
for(i = 0; i < 4; i++) {
for(j = 1; j <= 13; j++) { //String filename = "cards.png";
String filename = String.format("cards/%s%02d.png", c[i], j);
img[no] = ImageIO.read(new File(filename));
no++;
}
}
}
catch(Exception e) {
System.out.println(e);
System.exit(0);
}
// シャッフル
Image w;
for (i = 51; i >= 0; i--) {
j = (int)(Math.random() * (i + 1));
w = img[i];
img[i] = img[j];
img[j] = w;
}
}
/*public void paintComponent(Graphics g) {
super.paintComponent(g);
int i;
int x = 0,y=0;
for (i = 0; i < 52; i++) {
g.drawImage(img[i], x, y, null);
x = x + 100;
if(x>=900){
x=0;
y=y+140;
}
}
}*/
}
/*else if(m.getSource()==btn2) //ランキング
{
}
else if(m.getSource()==btn3) //ログアウト
{
}
}*/
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- オープンソース Flaskでサーバー立ち上げに関して 1 2023/08/12 21:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
シャットダウンフックが呼ばれない
-
Androidプログラムについて
-
生年月日と今日の日付から年齢...
-
干支の計算で。。。
-
半透明の画像
-
「例外 *** は対応する try 文...
-
python OpenPyXLを使って出力結...
-
二次元配列について
-
ActionForm form にnullが入っ...
-
アーティスト名リストを取得す...
-
importするには java.io.*; imp...
-
JAVAサーブレット。 HTML...
-
<forEach> 内で供給された "ite...
-
Javaを使ってデジタル時計を作...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
System.out.printlnの意味がよ...
-
1~100までの数字を表示し、か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
ColabでのPytorchのエラー
-
Javaを使ってデジタル時計を作...
-
<forEach> 内で供給された "ite...
-
文字列を数式に
-
importするには java.io.*; imp...
-
python OpenPyXLを使って出力結...
-
Selenium IDEでexportしたコー...
-
シャットダウンフックが呼ばれない
-
Java3Dで横置き円筒体の円筒中...
-
Javaで常駐するソフトを作って...
-
生年月日と今日の日付から年齢...
-
Javaを使用して定時送信をしたい
-
干支の計算で。。。
-
Java での グローバルIP取得
-
GridBagLayoutについての質問
-
ファイル名を動的に生成したい
-
HTMLでのTableタグデータ取得方法
-
importとextendsの用い方の違い...
おすすめ情報