2011-05-08 46 views
0

我的程序有問題。 我工作在GUI上,我不能讓它使用該線路類MenuController更改視圖:Java返回組件

currentComponent = timeRegController.getView().userRegisterTime(user); 

但我也有類似的線,這工作得很好。 currentComponent一個組件,它是程序顯示的當前視圖。

timeRegController.getView()返回一個名爲view的TimeRegistrationPanel。

在課堂上TimeRegistrationPanel我有以下方法:

public Component userRegisterTime(User user) { 
     JPanel window = new JPanel(new BorderLayout()); 
     return window; 
    } 

我的程序說,問題就出在這行:

currentComponent = timeRegController.getView().userRegisterTime(user); 

因爲userRegisterTime()是未定義的類型組件。

回答

0

確保getView()返回TimeRegistrationPanel。

+0

非常感謝。現在它可以工作。 – user744289 2011-05-08 23:18:07

+0

如果這是解決方案,您應該接受它作爲答案。 – Dimitar 2011-05-09 00:47:36

1

您需要將返回值轉換爲您的TimeRegistrationPanel類。

+0

我試過 currentComponent =((Object)timeRegController.getView())。userRegisterTime(user); and currentComponent =(Object)timeRegController.getView()。userRegisterTime(user); 但既不能正常工作... – user744289 2011-05-08 22:45:51

+1

?你爲什麼選擇Object?你知道鑄造如何工作嗎?也許看看Java教程:http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html – Puce 2011-05-08 23:07:23