静态方法中不能引用非静态变量。将pane定义为static就可以了!

解决方案 »

  1.   

    非静态的变量不能在有静态上下文的地方被引用。
    public class b_1Action implements ActionListener
      

  2.   

    也就是说你的pane必须定义为static或者final才行
      

  3.   

    不懂为什么b_1Action为什么要设为静态的?!

    public static class b_1Action implements ActionListener
    改为
    public class b_1Action implements ActionListener
    就不会有问题了。
    因为静态内部类或静态方法中不能引用实例变量!
      

  4.   

    就此程序而言,将JTextPane pane;改为static JTextPane pane;静态内部类或静态方法中不能引用实例变量没有错,但是当你需要在静态内部类里面调用成员变量的时候,就要把该成员变量定义为静态成员变量。但是这段程序实现的方式有问题,如xiao_yuer(小鱼儿) 所言,没有必要这么做,完全可以使用匿名内部类来解决,简单描述如下:
      b_1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent e) {
          b_1_actionPerformed(e);
        }
      });   //注意,此处实例化了一个匿名内部类
    然后添加方法:
      private void b_1_actionPerformed(ActionEvent e) {
         ...............//此处添加事件处理代码
      }这样就没有那么麻烦了。