-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 に答える