-1

我正在使用 Netbeans 创建一个 JList 和一个事件侦听器。我想检索用户选择的对象,当它被选中时。到目前为止,我有这个:

private void listKurserValueChanged(javax.swing.event.ListSelectionEvent evt) {
    System.out.println("" + ((listKurser)evt.getSource()));
}

但是,我在 JList 的 listKurser 上得到“找不到符号”。

怎么了?

4

2 回答 2

2

尝试

private void listKurserValueChanged(javax.swing.event.ListSelectionEvent evt) {
    System.out.println("" + ((JList)evt.getSource()));

    JList changedList = (JList)evt.getSource();
    if (listKurser == changedList) {
        //listKurser was changed
    }
}
于 2012-12-12T11:45:36.600 回答
0

只是作为序言,我不使用 Netbeans,但是当我看到这条线时:

private void listKurserValueChanged(javax.swing.event.ListSelectionEvent evt) {

我猜 Netbeans 会自动生成要从附加到名为“listKurser”的 JList 的 ListSelectionListener 调用的方法。

因此,它是一个独特的侦听器,仅附加到特定的 JList,这不一定是坏事。如果是这样,则无需强制转换,甚至无需调用 event.getSource()。只需简单地调用:

listKurer.getSelectedValue() //or whatever you're trying to call
于 2012-12-12T16:53:35.837 回答