java - 向 JList 添加多个元素

标签 java swing jcombobox jlist

我需要在 jList 上保存来自特定源的多个值。

在 for 循环中,我为上面代码中声明的 Jlist 生成一个 jComboBox 和 bot 一个 Model(因此在此不可见)一段代码) 我不明白,也许这是一个简单的问题,为什么 jComboBox 具有从数组 channelId 中获取的所有元素,而不是 Jlist 仅保存最后一个元素。

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);   
}   

最佳答案

每次调用printChannelData()(可能在某个循环中)时,都会重新创建ListModel。在外部创建 ListModel,并在方法内部添加到模型中。

并且channelId是一个String[],但只包含一项。我不知道你想用它做什么。

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);   
} 

关于java - 向 JList 添加多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912305/

相关文章:

java - VisualVM 中的美元符号

java - 在 JTextField 的 DocumentFilter 中使用正则表达式时出现问题

java - JTextField:将十进制逗号重新映射到点

java - 如何知道您在 JComboBox 中选择的内容

java - 更改可编辑 JComboBox 中的现有项目

java - 文本到语音 android 在 Activity 可见时输出语音

java - 检查LinkedList是否是子列表

java - 如何使用 ActionListener 中使用的变量?

java - JTable 中的 JComboBox 不显示选项,只有正确数量的空白选项

java - a=a++ 在 Java 中是如何工作的