Java:防止将项目作为重复项添加到UI

时间:2016-04-11 21:12:03

标签: java swing loops button

每次单击选项卡tab3时,它都会重新加载列表listOfFiles,然后在列表中为每个项目的选项卡添加一个按钮。如何在每次单击选项卡时再次添加相同的按钮?注意:可以在每次单击之间修改列表。

for (int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        JButton btnTemp2 = new JButton("Load: " + listOfFiles[i].getName());
        tab3.add(btnTemp2);
        tab3.revalidate();
    }
}

发生了什么(例如,两次点击后):

(按钮)加载:MyFile

(按钮)加载:MyFile2

(按钮)加载:MyFile

(按钮)加载:MyFile2

我想要的(点击次数之后):

(按钮)加载:MyFile

(按钮)加载:MyFile2

2 个答案:

答案 0 :(得分:1)

您可以使用tab3.removeAll()方法删除所有元素。因此,每次点击后,首先调用此方法,然后添加按钮。

tab3.removeAll();
for (int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        JButton btnTemp2 = new JButton("Load: " + listOfFiles[i].getName());
        tab3.add(btnTemp2);
    }
}
tab3.revalidate();

答案 1 :(得分:0)

File个参考文献存储在Set而不是List或数组中。