2013-03-28 40 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

相关问题