我需要做个后台,用到了JMenuBar。
我是想这样做,每一个JMenu 都是用一个类来写,这样方便维护。
那样貌似需要将JMenu类的变量定义为public static类型,不用public static修饰的话每次点菜单项进去变量都会重新初始化,之前更改的数据没了,这样明显不合理。定义为public static的话,可以说是全局变量了。据我了解,java要求变量作用域最小化,最好避免使用全局变量。
怎么感觉避免不了啊,像我这样的话估计要定义一大堆全局变量啊。(不可能所有和JMenuBar相关的代码全部放在一个类中吧,这样岂不是一个类成万行代码了,怎么维护啊)

解决方案 »

  1.   

    能说具体点吗,不是懂//定义接口
    public interface TT {
    public int a = 1;
    }
    //实现接口
    public class Item11 implements TT{ void init(){
    a++;
    System.out.println(a);
    }
    }
    //另一个菜单项调用init()方法的类就不举例了
    问题是报错,不知怎么用
      

  2.   

    肯定报错啦,接口里面的变量是不能变得,是final的,是一个常量
      

  3.   

    你可以在自己写个 MyJMenu 继承自JMenu  然后自己写构造器  最好带参  然后根据参数构造不同特点的JMenu对象啊   这样多方便!
      

  4.   

    //定义接口
    public interface TT {
        public static final int a = 1;
    }
    //实现接口
    public class Item11 implements TT{   void init(){
            a++;//我们不会对a进行操作了
            System.out.println(a);
        }
    }
      

  5.   

    每个菜单项 JMenuItem 对应一个  Action。没有必要继承 JMenu/JMenuBar。