2013-02-18 70 views
-4

我需要使用Java中的C#委託人功能,我看到一個鏈接Delegator.jar來提供Java中的Delagate功能。我沒有在任何地方找到任何Deleagtor的用法。所以,請分享一下在Delegator.jarHouw使用Java中的委託人

感謝

+1

請提供更多背景信息並提出實際問題。你如何使用委託人?您是否部署到支持JEE6的應用程序容器?如果是這樣,你可能想看看提供Event界面的CDI。 – mabi 2013-02-18 09:08:34

+0

我正在使用Swing應用程序。我需要禁用一些形式爲子窗體的UI元素。所以我在代理的.NEt中實現了相同的功能。所以我將轉換退出WindowsApplication(C#),Swing應用程序。 – 2013-02-18 09:12:08

+0

Ew,沒有編程時代的Swing。您可能想要將表示菜單的JMenu傳遞給子窗體並在菜單上調用setEnabled(false)(儘管http://www.coderanch.com/t/337209/GUI/java/disable-Menubar表明僅此禁用菜單,而不是其中的項目)。您可以在此環境中最接近的委託人可能是附加到菜單並由表單觸發的ActionListeners。 – mabi 2013-02-18 11:23:36

回答

1

標識不認爲它實際上可能你的知識,我使用的接口而不是說,

+0

請參閱我需要設置從其他表單禁用的菜單。我使用Delegate實現了相同的功能,我已經將Delegate Object傳遞給該子表單,因此我可以觸發Delegate,並且菜單項目是diabled。請告訴我如何執行此操作java中的Procedure – 2013-02-18 09:09:39

0

有沒有在java中的代表。通常,使用匿名嵌套類代替。

+0

請提供與My scenario有關的示例或鏈接。以便我可以研究它。 – 2013-02-18 09:17:29

0

你可以嘗試這樣做

public class Anon { 

public static void main(String[] args) { 
    new Anon(); 
} 

public Anon() { 
    Foo printOne = new Foo() { 
     public void doSomething() { 
      printOne(); 
     } 
    }; 
    Foo printTwo = new Foo() { 
     public void doSomething() { 
      printTwo(); 
     } 
    }; 
    printOne.doSomething(); 
    printTwo.doSomething(); 
} 

public void printOne() { 
    System.out.println("One"); 
} 

public void printTwo() { 
    System.out.println("Two"); 
} 

public class Foo { 
    public void doSomething() { 

    } 
} 

    } 

我不知道這是否明確回答你的問題,但在java中不要使用委託所以這很可能是下一個最近的事情,這或接口。