Java 我有一个ArrayList<;JCheckBox>;我要将其转换为ArrayList<;字符串>;

Java 我有一个ArrayList<;JCheckBox>;我要将其转换为ArrayList<;字符串>;,java,swing,arraylist,jcheckbox,Java,Swing,Arraylist,Jcheckbox,我有一个ArrayList,我想把它转换成ArrayList 首先我喜欢这个。我从一个文件中获取所有标题,并将它们放入一个新的ArrayList。之后,我创建了一个新的JCheckBox数组,其中包含StringArray中的所有字符串 ArrayList<String> titler = new ArrayList<String>(); titler.addAll(FileToArray.getName()); ArrayList<JCheckBox> f

我有一个
ArrayList
,我想把它转换成
ArrayList

首先我喜欢这个。我从一个文件中获取所有标题,并将它们放入一个新的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 titler=new ArrayList();
titler.addAll(FileToArray.getName());
ArrayList filmListe=新的ArrayList();
用于(字符串标题:标题器){
添加(新JCheckBox(titel));
}
用于(JCheckBox复选框:filmListe){
CenterCenter.add(复选框);
}
这就是我要做的:首先,我创建一个新的ArrayList(仍然是JCheckBox格式),其中包含所有选中的复选框。我想以字符串格式将添加到新的ArrayList

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

ArrayList SelectedBox=新建ArrayList();
用于(JCheckBox复选框:filmListe){
if(checkbox.isSelected()){
选择框。添加(复选框);
}
ArrayList titleSAR=新的ArrayList();
对于(JCheckBox滴度:selectedbox){
*titlesArr.add(滴度)*
}

一个小问题需要很多代码和文本!但是我真的很感谢你的帮助!:)

你不能将
JCheckBox
添加到
列表中,类型
JCheckBox
String
是不兼容的

我猜您希望将复选框的文本添加到列表中,因此必须使用以下命令手动检索该复选框:

titlesArr.add(titel.getText());
试试这个:

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

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

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

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

    for (JCheckBox checkbox : filmListe) {
        if (checkbox.isSelected()) {
            titlesArr.add(checkbox.getText());
        }
    }
arraylisttitlesarr=新的ArrayList(filmListe.size());
用于(JCheckBox复选框:filmListe){
if(checkbox.isSelected()){
titlesArr.add(checkbox.getText());
}
}

我不确定我是否理解您试图实现的目标。以这种方式在对象上使用
toString
是一个非常糟糕的主意,因为您依赖于它的实现,而它通常只用于调试。在您的情况下,在
JCheckBox
上调用
toString
将导致如下可怕的输出“javax.swing.JCheckBox[,0,0,0x0,无效,alignmentX=0.0,alignmentY=0……”已修复。在投票前,介意说出这样的建设性意见吗?非常感谢!我在这个节目中担任主角的时间太长了。:)
    ArrayList<String> titlesArr = new ArrayList<String>(filmListe.size());

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