• 締切済み

javaの初心者です。

コンピュータとじゃんけんをするプログラムをつくりたいのですが コンパイルしたところ、次のようなエラーが出てきました。 java:8: メソッドの宣言が不正です。戻り値の型が必要です。 すいませんが、どこをどう直したらいいのかわかりません。 よろしければお教え願います。 以下がプログラムです。 import java.awt.event.*; import java.awt.*; import javax.swing.*; import java.applet.AudioClip; class Zyanken extends YJFrame implements ActionListener{ JButton bt1,bt2,bt3; JLabel lb1,lb2,lb3; YJFrame(String s, int w, int h,int b){ super(s,w,h,b); String[] ttl={"グー","チョキ","パー","Exit"}; String[] tips={"グーです","チョキです","パーです","終了します"}; int i; setUp(); Icon[] ic=new Icon[4]; for(i=0;i<4;i++) ic[i]=new ImageIcon("icon"+i+".gif"); btn=new JButton[4]; for(i=0;i<4;i++){ btn[i]=new JButton(ttl[i],ic[i]); btn[i].setToolTipText(tips[i]); btn[i].addActionListener(this); } JPanel p=new JPanel(); for(i=0;i<4;i++) p.add(btn[i]); p.setBackground(Color.pink); pane.add(p,BorderLayout.SOUTH); panel=new JPanel(); pane.add(panel,BorderLayout.CENTER); } public void actionPerformed(ActionEvent e){ int com=(int)(Math.random()*4); if(com==1){ lb2.setText("COMはグーです。"); } else if(com==2){ lb2.setText("COMはチョキです。"); } else{ lb2.setText("COMはパーです。"); } if(e.getSource()==bt1){ if(com==1){ lb3.setText("あいこです。"); } else if(com==2){ lb3.setText("あなたの勝ちです。"); } else{ lb3.setText("あなたの負けです。"); } } else if(e.getSource()==bt2){ if(com==1){ lb3.setText("あなたの負けです。"); } else if(com==2){ lb3.setText("あいこです。"); } else{ lb3.setText("あなたの勝ちです。"); } } else{ if(com==1){ lb3.setText("あなたの勝ちです。"); } else if(com==2){ lb3.setText("あなたの負けです。"); } else{ lb3.setText("あいこです。"); } } } }

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

変数btn 変数panel 宣言していないからよ

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

YJFrame(String s, int w, int h,int b){ がエラー箇所 メソッドを宣言する場合、コンストラクター以外は 必ず戻り値の型(voidを含む)が必要 というかたぶんコンストラクターなので 戻り値の型は不要 コンストラクターは必ず そのクラスと同じ名称である必要があるので 同じ名前にしてあげればOK

sonsurususugi
質問者

補足

クラスと同じ名前にしたところ、 変数btn 変数panel 以上の2つのシンボルが見つかりません。とのエラーが出てしまいました。

関連するQ&A