2012-12-20 43 views
0

的狀態我有設置在我的GUI的方法

然後,我有這樣的一些其他類的對象使用EnumStates

CallmeClass obj; 

,當我嘗試設置狀態與JComboBox中的這樣

obj.setState(state.getSelectedItem()); 

我得到的編譯錯誤

結果的枚舉

1.所需的狀態,但找到的對象

所以我的問題是is there a way to make the setState take as argument state.getSelectedItem() withouth changing the return type of the method setState() or re declaring the enums in the gui。謝謝。

+0

嘗試鑄造state.getSelectedItem()來所需的狀態對象 – MadProgrammer

+0

向我們顯示您的代碼和確切的編譯器錯誤消息。你所展示的三行代碼已經沒有多大意義了。 –

回答

2

我猜你的聲明setState是seomthing這樣的:

public void setState(State state){ 
    ... 
} 

的問題是,JComboBox可無類型(至少它是這樣,直到Java7)。因此getSelectedItem()總是返回需要轉換爲您的類型的對象。所以,你可以做,當你得到該項目的投:

obj.setState((State)state.getSelectedItem()); 

或者你可以改變你的方法聲明爲對象,做你的施法有:

public void setState(Object state){ 
    if(state instanceof State){ 
     State realState = (State)state; 
     ... 
    } 
} 
相關問題