解决方案 »

  1.   

    把变量byte[] macfca定义为LinkLayer类的静态变量
      

  2.   

    public class VarDemo {
    static byte[] macfca; public static void main(String[] args) {
    getready.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    macfca[1] = 123;
    }
    });
    }
    }
      

  3.   

    你的[macfca]是局部变量 在方法中声明的 在方法外声明就可以调用了
      

  4.   

    getready.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    如果在这里调用macfca则错误!
    ..............
    }
    });
    -------------------------------------------------------
    这里用到了 匿名内部类如果要使用一个匿名内部类外部的变量那么这个变量需要 被 final 修饰  byte[] macfca 改为   final byte[] macfca 就可以了  
    或者 在 内部类中声明 byte数组也可以
      

  5.   

    其实当你用 javac 编译这个类或者在 Eclipse 中写完代码保存时 Eclipse 或 JavaC 都会提示你错误消息,错误消息中已经说明白了需要把变量声明为 final,需要多观察,不要忽视任何错误消息,至少在你理解它是什么意思之前,有时候黄色的警告消息也很有指示意义。楼主想问为什么会报错,这就是正解。
    如果只是想在匿名类里面使用这个变量,楼上几位说的几种方法都可以。
    楼主是个初学者?这应该是比较基础的东西呀。
      

  6.   

    谢谢大家。尤其是3楼的朋友。
    6楼的朋友给出的代码不行,直接报错。也许是我没明白吧。
    我以前编纯C的,现在必须用JAVA做东西。有些细节确实不是很理解。