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

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

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

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

Q&A

解決済

1回答

1669閲覧

java アプレット

satanosaka18419

総合スコア37

Java

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

0グッド

0クリップ

投稿2015/10/28 06:14

コード public class ap1 extends Panel implements ItemListener, ActionListener{ APP parent; static int player_PC; //プレイヤー人数 static int player_NPC; //コンピュータ人数 static int player; //総プレイヤー人数 static int mode; //試合方法(1.点数制 2.勝利数制) static int siaisuu; //試合数 static Judge judge_main = new Judge(); static Player player_main1[] = new Player[player]; //-------------------------------------------------------------------------------- Label lab1= new Label("ジャンケンゲーム"); Label lab2= new Label("プレイヤー人数選択"); Label lab3= new Label("コンピュータ人数選択"); Label lab4= new Label("対戦方法選択"); Label lab5= new Label("対戦回数選択"); CheckboxGroup PC = new CheckboxGroup(); Checkbox cb1 = new Checkbox("1人", PC, false); Checkbox cb2 = new Checkbox("2人", PC, false); ・ ・ ・ Button bt1 = new Button("OK"); //-------------------------------------------------------------------------------- //ap1のコンストラクタ public ap1(APP app){ parent = app; setBackground(Color.pink); //パネルap1の背景の色を設定 setBounds(0, 0, 700, 700); //パネルap1の大きさ設定 setLayout(null); lab1.setBounds(180, 50, 340, 70); lab1.setBackground(Color.green); lab1.setForeground(Color.blue); lab1.setFont(new Font("Serif", Font.PLAIN, 40)); add(lab1); lab2.setBounds(100, 180, 165, 50); lab2.setFont(new Font("Serif", Font.PLAIN, 16)); add(lab2); cb1.setBounds(400, 180, 50, 50); add(cb1); cb2.setBounds(470, 180, 50, 50); add(cb2); ・ ・ ・ bt1.setBounds(305, 590, 120, 50); bt1.setEnabled(false); //ボタンの利用可・不可設定(true可、false不可) add(bt1); bt1.addActionListener(this); parent.add(this); } //-------------------------------------------------------------------------------- public void init(){ repaint(); } //-------------------------------------------------------------------------------- //チェックボックスが選択された後の処理 public void itemStateChanged(ItemEvent e){ repaint(); } //-------------------------------------------------------------------------------- public void paint(Graphics g){ for(int i = 0; i < player_PC; i++){ player_main1[i] = new Player("プレイヤー" + (i+1)); } for(int i = player_PC; i < player; i++){ player_main1[i] = new Player("コンピュータ" + (i+1-ap1.player_PC)); } if((PC.getSelectedCheckbox() == cb1 || PC.getSelectedCheckbox() == cb2) && (NPC.getSelectedCheckbox() == cb3 || NPC.getSelectedCheckbox() == cb4 || NPC.getSelectedCheckbox() == cb5 || NPC.getSelectedCheckbox() == cb6) && (Mode.getSelectedCheckbox() == cb7 || Mode.getSelectedCheckbox() == cb8) && (GameNum.getSelectedCheckbox() == cb9 || GameNum.getSelectedCheckbox() == cb10 || GameNum.getSelectedCheckbox() == cb11 || GameNum.getSelectedCheckbox() == cb12)){ if(PC.getSelectedCheckbox() == cb1 && NPC.getSelectedCheckbox() == cb3){ g.setColor(Color.red); //文字の色設定 g.setFont(new Font(null, Font.PLAIN, 16)); //文字のサイズ設定 g.drawString("※ 参加人数が足りません", 130, 530); bt1.setEnabled(false); //ボタン利用不可 } else if(PC.getSelectedCheckbox() == cb2 && NPC.getSelectedCheckbox() == cb6){ g.setColor(Color.red); //文字の色設定 g.setFont(new Font(null, Font.PLAIN, 16)); //文字のサイズ設定 g.drawString("※ 参加可能人数を超えています", 130, 530); bt1.setEnabled(false); //ボタン利用不可 } else{ g.setFont(new Font(null, Font.PLAIN, 16)); //文字のサイズ設定 g.drawString("この条件でいいですか?", 130, 530); bt1.setEnabled(true); //ボタン利用可 } player = player_PC + player_NPC; } } //-------------------------------------------------------------------------------- //ボタンが押された後の処理 public void actionPerformed(ActionEvent e){ parent.remove(parent.panel); //パネルap1を取り除く setLayout(null); parent.panel = new ap2(parent); //パネルap2の生成 } }
コード public class ap2 extends Panel implements ActionListener{ APP parent2; //--------------------------------------------------------------------------- Label lab1 = new Label("出す手を決めてください"); Label lab2 = new Label("0(グー)、1(チョキ)、2(パー)を入力してください"); Label lab3 = new Label("待機中"); Label lab4 = new Label("もう一度選択してください"); Label lab5 = new Label("待機中"); Label lab6 = new Label("もう一度選択してください"); TextField tf1 = new TextField(5); TextField tf2 = new TextField(5); static String str[] = new String[ap1.player_PC]; //テキストフィールドに書かれた文字(1,2,3)を配列化 static int str_int[] = new int[ap1.player_PC]; //str[]をint型に変更(PCの出す手の配列) static int hand_NPC[] = new int[ap1.player_NPC]; //NPCの出す手の配列 Button bt1 = new Button("決定."); Button bt2 = new Button("決定,"); Button bt3 = new Button("ジャンケン ポン"); //--------------------------------------------------------------------------- //ap2のコンストラクタ public ap2(APP app){ parent2 = app; setBackground(Color.pink); setBounds(0, 0, 700, 700); setLayout(null); lab1.setBounds(240, 30, 300, 35); lab1.setFont(new Font("Serif", Font.PLAIN, 20)); add(lab1); ・ ・ ・ bt3.setBounds(285, 350, 130, 50); bt3.setEnabled(false); //ボタンの利用可・不可設定(true可、false不可) add(bt3); bt3.addActionListener(this); parent2.add(this); } //--------------------------------------------------------------------------- //最初に処理されるメソッド public void init(){ repaint(); } //--------------------------------------------------------------------------- public void paint(Graphics g){ for(int i = 0; i < ap1.player_PC; i++){ g.setFont(new Font(null, Font.PLAIN, 14)); g.drawString(ap1.player_main1[i].getName(), 80+150*i, 140); } for(int i = ap1.player_PC; i < ap1.player; i++){ g.setFont(new Font(null, Font.PLAIN, 14)); g.drawString(ap1.player_main1[i].getName(), 80+150*i, 140); g.setFont(new Font("Serif", Font.PLAIN, 12)); g.drawString("待機中", 100+150*i, 304); } } //---------------------------------------------------------------------------- //ボタンが押された後の処理 public void actionPerformed(ActionEvent e){ //"決定."が押された時の処理 if("決定.".equals(e.getActionCommand())){ ・・・ } //"決定,"が押された時の処理 else if("決定,".equals(e.getActionCommand())){ ・・・ } //"ジャンケン ポン"が押された時の処理 else if("ジャンケン ポン".equals(e.getActionCommand())){ ・・・ } parent2.remove(parent2.panel); //パネルap2を取り除く setLayout(null); parent2.panel = new ap3(parent2); //パネルap3の生成 } } }

アプレットでじゃんけんゲームを作っています。
上のプログラムが途中ですがそれになります。
今エラーは出ていないのですが、
ap1クラスのpaintメソッドでPlayerクラスのインスタンス?を作っていて、ap2クラスのpaintメソッドでプレイヤー1、プレイヤー2、コンピュータ1・・・のように名前を表示させようとしているのですがこのプログラムは表示できませんでした。
どこに間違いがあるのか教えていただきたいです。
よろしくお願いします。

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

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

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

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

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

rysh

2015/11/08 04:10

間違いを見つけるためにはこちらの環境で動作させてみようとしましたが、動かせませんでした。 提示するコードは省略せずに載せたほうがいいです。 ファイル数が多いのであればgithubなどにアップしてリンクを貼るといいと思います。
guest

回答1

0

自己解決

すみません。
解決できました!

投稿2015/11/20 05:05

satanosaka18419

総合スコア37

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問