2011-05-08 68 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