我有一个要转换为 ArrayList<String> 的 ArrayList<JCheckBox>

Posted

技术标签:

【中文标题】我有一个要转换为 ArrayList<String> 的 ArrayList<JCheckBox>【英文标题】:I have an ArrayList<JCheckBox> that i want to convert to an ArrayList<String> 【发布时间】:2012-01-09 17:19:33 【问题描述】:

我有一个ArrayList&lt;JCheckBox&gt;,我想将其转换为ArrayList&lt;String&gt;

首先我喜欢这样。我从一个文件中获取所有标题并将它们放入一个新的 ArrayList 中。后记我创建了一个新的 JCheckBox 数组,其中包含来自 StringArray 的所有字符串。

ArrayList<String> titler = new ArrayList<String>();
titler.addAll(FileToArray.getName());

ArrayList<JCheckBox> filmListe = new ArrayList<JCheckBox>();
for(String titel:titler)
    filmListe.add(new JCheckBox(titel));

for(JCheckBox checkbox:filmListe)
    CenterCenter.add(checkbox);

这就是我想要做的:首先我创建一个新的 ArrayList(仍然是 JCheckBox 格式),其中包含所有选定的复选框。后记我想以字符串格式将 ArrayList 添加到新的 ArrayList 中。

主要问题是斜体(带**):

ArrayList<JCheckBox> selectedBoxes = new ArrayList<JCheckBox>();

for(JCheckBox checkbox: filmListe)
    if (checkbox.isSelected())
        selectedBoxes.add(checkbox);
    

ArrayList<String> titlesArr = new ArrayList<String>();
for(JCheckBox titel:selectedBoxes) 
    *titlesArr.add(titel);*

一个小问题的大量代码和文本!但我真的很感谢你的帮助! :)

【问题讨论】:

我不确定我是否理解您想要实现的目标.. 【参考方案1】:

您不能将JCheckBox 添加到List&lt;String&gt;JCheckBoxString 类型不兼容。

我猜你想将复选框的文本添加到你的列表中,所以你必须手动检索它,使用:

titlesArr.add(titel.getText());

【讨论】:

【参考方案2】:

假设复选框的标签与您最初在标题列表中的标签完全相同,只需使用复选框的getText 方法(获取字符串标签)。您不需要单独列出已选中的复选框 - 只需在您的第一个循环中放置一个 if 块,如下所示:

    ArrayList<String> titlesArr = new ArrayList<String>(filmListe.size());

    for (JCheckBox checkbox : filmListe) 
        if (checkbox.isSelected()) 
            titlesArr.add(checkbox.getText());
        
    

【讨论】:

非常感谢!我已经在这个节目上主演了太久了。 :)【参考方案3】:

试试这个:

ArrayList<String> titlesArr = new ArrayList<String>();
for(JCheckBox checkbox: filmListe)
    if (checkbox.isSelected())
        titlesArr.add(checkbox.getText());

现在titlesArr 包含您想要的内容。

【讨论】:

以这种方式在对象上使用toString 是一个非常糟糕的主意,因为您依赖于它的实现,而这通常只用于调试。在您的情况下,在 JCheckBox 上调用 toString 会导致可怕的输出,例如 "javax.swing.JCheckBox[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0......" 已修复。介意在投反对票之前告诉建设性的cmets吗?

以上是关于我有一个要转换为 ArrayList<String> 的 ArrayList<JCheckBox>的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ArrayList<String> 转换为 double[]? [复制]

从 Optional<> 转换为 ArrayList<>

将 HashMap 转换为具有相同排序的 ArrayList [重复]

如何将对象类转换为 arrayList ? java [重复]

Java转换Arraylist 漂浮[]

将 ArrayList 转换为包含不同长度数组的二维数组