1

好吧,我在 java 方面很糟糕(老实说我讨厌编程,我更喜欢网络)。无论如何,由于这是针对大学的,因此我实际上无法共享很多代码而不会因学术不端而被完成,尽管我可以自由地寻求帮助。

我有一个 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()]);
            }
        });

但是,它抱怨它“无法在原始类型 double 上调用 set Double(Double)”。我觉得解决方案非常简单,但我已经坚持了一个多小时。

4

2 回答 2

5

Adouble只是一个没有方法的原始值,只需分配它。

filmCost = filmcost[filmList.getSelectedIndex()];
于 2013-03-28T17:13:43.230 回答
2

你需要的是这样写:

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

因为filmCost是双重原语,您不能在原语上调用任何方法(它们不是您调用的对象setget任何方法)。因此,只需使用=.

也是一个建议,更改变量名称filmCostfilmcost因为它们非常令人困惑(它们看起来相同,至少我第一眼就感到困惑)。

于 2013-03-28T17:18:17.540 回答