想写个扫雷……有2个源文件
Landmine.javaimport javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Landmine extends JFrame
{       
        Playing  listener = new Playing(this);    //监听者    
        JPanel landminePanel = new JPanel();//创建地雷面板
       
        public Landmine()
        {
                super("扫雷");//标题
                setSize(600,600);//窗口尺寸
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//最大化、最小化、关闭按钮
BorderLayout ff = new BorderLayout();//创建布局管理器
setLayout(ff);//关联布局管理器
//setResizable(false);//禁止最大化

//设置地雷面板
GridLayout dd = new GridLayout(16,16);  
landminePanel.setLayout(dd);
JButton [][] lei = new JButton[18][18];
for(int i=0; i<18; ++i)
{
        for(int j=0; j<18; ++j)
        {
                lei[i][j] = new JButton(i+""+j);
        } 
}
for(int i=1; i<17; ++i)
{
        for(int j=1; j<17; ++j)
        {
               landminePanel.add(lei[i][j]);
               lei[i][j].addActionListener(listener); 
        } 
}
add(landminePanel,BorderLayout.CENTER); //加入主框架中央



setVisible(true);//显示之
        }
        public static void main(String[] argus)
        {
                Landmine Zhang = new Landmine();
        }
}
Playing.javaimport javax.swing.*;
import java.awt.event.*;
import java.awt.*;public class Playing implements ActionListener
{
        Landmine gui;
        
        public Playing(Landmine in )
        {
                gui = in;
        }
        public void actionPerformed(ActionEvent event)
        {
                
                if( (JButton)event.getSource() == gui.lei[1][1] )//错误行
                    JOptionPane.showMessageDialog(null,"HELLO!");
        }   
        
        
}错误提示为:C:\Users\barry\Desktop>javac Landmine.java
.\Playing.java:16: 找不到符号
符号: 变量 lei
位置: 类 Landmine
                if( (JButton)event.getSource() == gui.lei[1][1] )                                                     ^怎么改啊?菜鸟级问题……

解决方案 »

  1.   


    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Landmine extends JFrame
    {       
            Playing  listener = new Playing(this);    //监听者    
            JPanel landminePanel = new JPanel();//创建地雷面板
            JButton [][] lei;  //改之
            public Landmine()
            {
                    super("扫雷");//标题
                    setSize(600,600);//窗口尺寸
                    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//最大化、最小化、关闭按钮
                    BorderLayout ff    =    new    BorderLayout();//创建布局管理器
                    setLayout(ff);//关联布局管理器
                    //setResizable(false);//禁止最大化
                    
                    //设置地雷面板
                    GridLayout dd    =    new    GridLayout(16,16);  
                    landminePanel.setLayout(dd);                                
                    lei = new JButton[18][18];  //改之                for(int i=0; i<18; ++i)
                    {
                            for(int j=0; j<18; ++j)
                            {
                                    lei[i][j] = new JButton(i+""+j);
                            } 
                    }
                    for(int i=1; i<17; ++i)
                    {
                            for(int j=1; j<17; ++j)
                            {
                                   landminePanel.add(lei[i][j]);
                                   lei[i][j].addActionListener(listener); 
                            } 
                    }
                    add(landminePanel,BorderLayout.CENTER);    //加入主框架中央
                    
                    
                    
                    setVisible(true);//显示之                
            }
            public static void main(String[] argus)
            {
                    Landmine Zhang = new Landmine();
            }
    }
      

  2.   

     JButton [][] lei = new JButton[18][18];
    把这句放到类的成员变量中,作为成员变量,在Playing类中就可以访问了,注意权限控制,如果你想直接访问的话,可能要声明为public或default!
      

  3.   

    想改颜色的 没改成 JButton [][] lei; 定义为域变量 就可以了
      

  4.   

    你的lei是局部变量,你用对象能访问到么?能运行么?编译不报错?
    可以把它设置成全局变量