7

DefaultListModel を使用する JList があります。

次に、JList に表示されるモデルに値を追加します。(ダブルクリックすると) ユーザーが選択したその人の現在のユーザー番号を編集できるようにする MouseListener を作成しました。

そのレコードの実際のオブジェクトが変更されていることを確認しました。私が抱えている唯一の問題は、実際の Jlist を更新して、そのオブジェクトの新しい値を表示することです。

私が持っている現在のコードのスニペットは次のとおりです。

JList と DefaultTableModel の作成:

m = new DefaultListModel();
m.addListDataListener(this);
jl = new JList(m);
jl.addMouseListener(this);

オブジェクトの更新:

String sEditedNumber = JOptionPane.showInputDialog(this, "Edit number for " + name, number);
if (sEditedNumber != null) {
    directory.update (name, sEditedNumber);
}

そして (jl が JList で m が DefaultTableModel の場合):

public void contentsChanged(ListDataEvent arg0) {
        jl.setModel(m);
    }
4

3 に答える 3

13

の代わりに、などのいずれかの方法setModel()を使用して既存のモデルを更新します。DefaultListModelsetElementAt()fireContentsChanged()

于 2012-03-26T00:17:47.480 に答える
3

fireContentsChanged()ListModelを呼び出す必要があります。

于 2012-03-25T23:59:07.083 に答える