- 締切済み
javaのプログラムについて
初めまして。java初心者のものです。 コンピュータとじゃんけんをするというプログラムをつくりたいのですが、 コンパイルしたところ、次のようなエラーが出ました。 「シンボルが見つかりません。」 どこをどう直せばよいのでしょうか。お教え願います。 以下が私のプログラムです。 import java.awt.event.*; import java.awt.*; import javax.swing.*; import java.applet.AudioClip; class Zyanken extends YJFrame implements ActionListener{ JButton[] btn; JPanel panel; Zyanken(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){ panel.setText("COMはグーです。"); } else if(com==2){ panel.setText("COMはチョキです。"); } else{ panel.setText("COMはパーです。"); } if(e.getSource()==btn){ if(com==1){ panel.setText("あいこです。"); } else if(com==2){ panel.setText("あなたの勝ちです。"); } else{ panel.setText("あなたの負けです。"); } } else if(e.getSource()==btn){ if(com==1){ panel.setText("あなたの負けです。"); } else if(com==2){ panel.setText("あいこです。"); } else{ panel.setText("あなたの勝ちです。"); } } else{ if(com==1){ panel.setText("あなたの勝ちです。"); } else if(com==2){ panel.setText("あなたの負けです。"); } else{ panel.setText("あいこです。"); } } } } 大変恐縮ですが、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- teketon
- ベストアンサー率65% (141/215)
> class Zyanken extends YJFrame implements ActionListener{ YJFrameクラスの定義はどこか別にあるのでしょうか? > pane.add(p,BorderLayout.SOUTH); paneの宣言とインスタンス生成がなされていません。
補足
YJFrameは以下です。 //Basic JFrame defined by Yamanaka import java.awt.*; import java.awt.event.*; import javax.swing.*; public class YJFrame extends JFrame{ private Dimension d; private int look; protected Container pane; YJFrame(String title,int width ,int height,int b){ super(title); setSize(width,height); look=b; pane=getContentPane(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Frameのclose処理 } YJFrame(int width,int height){ this("No Title",width,height,0); } YJFrame(int width){ this("No Title",width,(int)(width*0.8),0); } YJFrame(){ this("No Title",300,200,0); } protected void setUp(){ d=Toolkit.getDefaultToolkit().getScreenSize(); setLocation((d.width-getSize().width)/2, (d.height-getSize().height)/2); try{ switch(look){ case 0: UIManager.setLookAndFeel( "javax.swing.plaf.metal.MetalLookAndFeel"); break; case 1: UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); break; case 2: UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"); break; case 3: UIManager.setLookAndFeel( "com.sun.java.swing.plaf.motif.MotifLookAndFeel"); break; default: UIManager.setLookAndFeel( "javax.swing.plaf.metal.MetalLookAndFeel"); break; } SwingUtilities.updateComponentTreeUI( this ); }catch( UnsupportedLookAndFeelException e){ }catch( ClassNotFoundException e){ }catch( InstantiationException e){ }catch( IllegalAccessException e){ } } } paneの宣言とインスタンス生成はどこでするのがベストですかね?;