0

jList特定のソースからの複数の値を保存する必要があります。

for サイクル内で、上記のコードで宣言された a と bot a の両方を生成しjComboBoxます(コードのこの部分では表示されません)配列ではなく、Jlist は最後の要素のみを保存します。ModelJlistchannelId

DefaultListModel jList1Model;
private void printChannelData(Channel channel, String nodeName) {   
    String[] channelId = { channel.getId()+" - "+nodeName/*+" - "+channel.getName()*/};
    jList1Model = new DefaultListModel();

    for (int i=0; i < channelId.length; i++) {
        //Adds element to the Single Channel Loading ComboBox
        channelIdComboBox.addItem(channelId[i]);
        //Adds elements to the Multiple Channel Loading ComboBox
        jList1Model.addElement(channelId[i]); 

    }
    jList1.setModel(jList1Model);   
}   
4

1 に答える 1

2

ListModel呼び出すたびに を再作成しますprintChannelData()(おそらくループのどこかで)。外側を作成しListModel、メソッドの内側でモデルに追加するだけです。

AndchannelIdは ですが、String[]アイテムは 1 つしかありません。あなたがそれで何をしようとしていたのかわかりません。

DefaultListModel<String> jList1Model = new DefaultListModel<>();

// probably a loop where you call printChannelData()
List<ChannelData> channels = ...;
for (ChannelData cd : channels) {
    printChannelData(cd, "whatever");
}


private void printChannelData(Channel channel, String nodeName) {   
    String channelId = channel.getId() + " - " + nodeName + " - " + channel.getName();
    for (int i=0; i < channelId.length; i++) {
        //Adds element to the Single Channel Loading ComboBox
        channelIdComboBox.addItem(channelId[i]);
        //Adds elements to the Multiple Channel Loading ComboBox
        jList1Model.addElement(channelId[i]); 
    }
    jList1.setModel(jList1Model);   
} 
于 2013-09-20T08:46:28.417 に答える