2013-03-28 80 views
1

好吧,我在Java很糟糕(說實話我討厭編程,我更喜歡網絡)。無論如何,因爲這是大學我實際上不能分享大部分的代碼,沒有爲學術不端行爲,雖然我可以自由尋求幫助。無法調用設置Double(Double)對原始類型雙重

我有一堆在它的名字一個JList,併爲那些名字

final Double[] filmcost = { 5.00, 5.50, 7.00, 6.00, 5.00 }; 

我想做的事時,有人從列表中選擇東西的價值的數組,它將值到一個變量(它也將文本框設置爲來自另一個數組的字符串,但工作正常)。

所以,我有我的變量

protected double filmCost; 

和這裏的ListSelectionListener

filmList.addListSelectionListener(new ListSelectionListener() { 
      public void valueChanged(ListSelectionEvent evt) { 
                filmCost.setDouble(filmcost[filmList.getSelectedIndex()]); 
      } 
     }); 

然而,它的抱怨,它「不能調用設置雙人間(雙人間)的基本類型雙」。我覺得解決方案非常簡單,但我一直堅持了一個多小時。

回答

5

A double只是一個沒有方法的原始值,只是給它賦值。

filmCost = filmcost[filmList.getSelectedIndex()]; 
2

你需要的是把它寫這樣的:

filmList.addListSelectionListener(new ListSelectionListener() { 
     public void valueChanged(ListSelectionEvent evt) { 
      filmCost = filmcost[filmList.getSelectedIndex()]; 
     } 
}); 

因爲filmCost是雙原始的,你不能調用在原始的任何方法(它們不是在其上調用對象setget或任何方法)。所以只需使用=來分配值。

另外一個建議,更改變量名稱filmCostfilmcost,因爲它們很混亂(它們看起來相同,至少我在第一次看時感到困惑)。

+0

謝謝,這很簡單,我覺得很愚蠢(我甚至早些分配了這樣的東西)。是的,我可以更好地說明我的變量。我曾經稱他們隨機蔬菜名稱在一個點雖然... – p3tch

+0

@ p3tch我留下深刻的印象'實際上不能分享大部分的代碼,沒有爲學術不端行爲'好精神 – Abubakkar

相關問題