2017-01-17 32 views
-1

我有兩個類,A和B.在第一個(A)中,我有一個包含一些項目的組合框,我想在第二個類中獲取選定的項目(B)(通過點擊某個按鈕)。當我使用Getter組合框時出現錯誤值

所以我爲comboBox做了一個getter,但是每次我在第二個類中調用getter時,即使沒有被選中,我也會得到第一個項目。

這裏是吸氣的代碼(第1類(A)):

public String getModuleSelected(){ 
     return comboModule.getSelectedItem().toString(); 
    } 

下面是如何獲得所選擇的項目(B類):

A moy = new A(); 
System.out.println(moy.getModuleSelected()); 

它總是顯示第一個很組合框的項目。即使它沒有被選中。我在自己的課程(A)中嘗試了getter,並且它工作正常,點擊按鈕後我得到了正確的選定項目。但是當我和另一個班級一起嘗試時,我得到一個項目,但總是第一個。

+4

這種類型的問題「爲什麼這段代碼無法正常工作」,幾乎總是要求您創建併發布工作[mcve],以便我們能夠充分理解問題並給予充分回答。請考慮這樣做。 –

+0

............你好? –

回答

3

這是你的問題:

A moy = new A(); // ******* this line**** 
System.out.println(moy.getModuleSelected()); 

你正在創建一個新的A對象,一個是不一樣的顯示一個物體,一個一直沒有它做任何選擇,它會不與顯示的對象具有相同的狀態。

解決方法是不要這樣做,不要創建新的A對象,而是僅在當前顯示的和活動的A對象上調用getModuleSelected()。你需要得到這個對象的有效引用,你的MCVE將幫助我們幫助你。請注意,這通常是通過構造函數或setter方法參數完成的。

相關問題