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

标签 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();
    }
}

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

(按钮)加载:我的文件

(按钮)加载:MyFile2

(按钮)加载:我的文件

(按钮)加载:MyFile2

我想要什么(任意多次点击后):

(按钮)加载:我的文件

(按钮)加载: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();

关于Java:防止项目作为重复项添加到 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36559326/

相关文章:

java - Hibernate:在插入数据库时​​填充特定列

java - 使用 java 或 j2ee 为 Android 客户端创建 Web 服务的最佳方法是什么?

java - 保证在多线程环境中迭代所有值

java - 使用 JProgressBar 以百分比显示线程的进度

java - JAVA动态改变标签框中字符的颜色

java - 在 Java 中最大化 JFrame

python - 将列表元素与列表列表元素进行比较并有条件地创建新列表

java - 像素完美的圆形和 Sprite 之间的快速碰撞检测

读取多个 CSV 文件并替换名称

c - 变量混淆