java - 停止重复图标

标签 java jframe

我正在制作一个 JTable,它可以覆盖将图标放入所需的表中。这就是我所做的。但结果在所有单元格中打印图标,而不仅仅是我的第一个单元格,这不是我想要的。结果如下:

enter image description here

import com.skype.User;

import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;

class BoardTableCellRenderer extends DefaultTableCellRenderer {


    public Component getTableCellRendererComponent(JTable table, Object value,
                                                   boolean isSelected, boolean hasFocus, int row, int col) {

        Component c = super.getTableCellRendererComponent(table, value,
                isSelected, hasFocus, row, col);
        JLabel label = (JLabel)super.getTableCellRendererComponent(table, value,isSelected, hasFocus,row, col);
        //row is the username
        if(col == 0) {
            try {
                User temp = Functions.returnUser(value.toString());
                ImageIcon imageIcon = new ImageIcon(getClass().getResource("/" + temp.getStatus().toString() + ".png"));
                label.setIcon(imageIcon);
            } catch (Exception ex) {
            }
            return label;
        }else{
            return c;
        }

    }
}

最佳答案

label.setIcon(null); 添加到您的 else block ,否则您只是返回上次设置的内容

参见Concepts: Editors and Renderers了解更多详情

关于java - 停止重复图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36416222/

相关文章:

javascript - 如果身份验证失败,则退出 android webview

Java 添加 ImageIcon 到 JLabel

java - 从 JFrame 监听内部 JPanel 上的操作

java - 整体上将所有值分配给数组

java - 为什么盐应该与散列值具有相同的长度?

java - 如何使用 selenium webdriver 进行水平滚动

java ;在框架可见之前获取插图

java - 在 JFrame 上定位两个面板

java - 如何让我的 GUI Frame 变大?

java - 使用 XSLT 复制 XML 时绕过命名空间