自定义类中的java run方法

时间:2013-12-03 11:56:33

标签: java

所以我正在使用自定义菜单制作应用程序。我有两种类,MenuContainer类和MenuOption类。 MenuContainer决定菜单的大小,位置和对齐方式,MenuOption决定要显示的字符串,字体,颜色等。我还想为每个MenuOption添加一段代码,代码决定单击MenuOption时会发生什么。因此,每个MenuOption都有自己独特的代码,在创建新的MenuOption时设置。我该怎么做呢?我希望这样的事可能有用:

MenuOption option1 = new MenuOption("Option1",font,color) {

    public void run() {

        //code to be executed

    }

};

option1.run();  //running the code

我不知道这是否经常被问到,但我搜查了一下,什么都没发现。

2 个答案:

答案 0 :(得分:1)

到目前为止,您的方法看起来很好(尽管事实上已经有GUI框架处理菜单机制)。

请注意,您创建了MenuOption的匿名子类,您可以在其中放置run方法。但变量option1的类型为MenuOption(不是匿名子类型)。为了能够调用方法run(),必须在类MenuOption中声明它。

像这样:

public class MenuOption {
    ...
    public void run() { /* default implementation does nothing */ }
    ...
}

现在,您的匿名子类会覆盖run方法,但可以通过评估为MenuOption的表达式调用该方法。

用户是否点击了菜单选项,是另一回事。但是,如果您能够检测到这样的点击,只需在点击的选项上调用run方法。

答案 1 :(得分:0)

您可以改为使用线程方法:

 public void Hello(){
    new Thread(){
        public void run(){
            for(int i=0;i<=10;i++){
               System.out.print("HELLO"); 
               try {
                sleep(1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(Class2.class.getName()).log(Level.SEVERE, null, ex);
            }
            }


        }
    }.start();
}