こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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("あいこです。");
}
}

}




}

大変恐縮ですが、よろしくお願いします。

投稿日時 - 2013-01-24 18:10:26

QNo.7908678

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

> class Zyanken extends YJFrame implements ActionListener{
YJFrameクラスの定義はどこか別にあるのでしょうか?

> pane.add(p,BorderLayout.SOUTH);
paneの宣言とインスタンス生成がなされていません。

投稿日時 - 2013-01-24 20:45:19

補足

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の宣言とインスタンス生成はどこでするのがベストですかね?;

投稿日時 - 2013-01-24 20:49:43

あなたにオススメの質問