每次单击选项卡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

最佳答案

您可以使用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();

08-18 08:15