java - 在jtable中的某些列中显示图像

标签 java swing jtable imageicon

我正在制作一个 JTable,其中前两列包含字符串,其余列包含图标(特别是 ImageIcon 类的对象)。我知道该怎么做,但我如何在 1 个表中混合使用,以便某些列返回字符串而其他列返回图标?

--编辑--
代码说明:数据是一个二维字符串数组。对于前两列,我希望它们按原样显示在表格中。对于所有其余列,只有两个可能的值,“Y”或“N”。现在,如果有“Y”,我希望显示一个 ImageIcon,否则如果有“N”,则将其留空。

(如果它有助于了解,我正在绘制一个比较表,如果值为“Y”,我希望在其中显示一个刻度线图标,否则如果值为“N”,则将单元格留空)

现在输出是这样的:
PATH_TO_ICON ("//home//....") 在 "Y"情况下的值
“javax.swing.ImageIcon@288e509b”在“N”的情况下

class MyTableModel extends AbstractTableModel {

    private Object[][] data;
    private String[] headers;

    public MyTableModel(String[][] data, String[] headers) {
        super();
        this.data = data;
        this.headers = headers;
    }

    @Override
    public int getColumnCount() {
        return headers.length;
    }

    @Override
    public int getRowCount() {
        return data.length;
    }

    @Override
    public Object getValueAt(int row, int col) {
        if (col < 2) {
            return data[row][col];
        } else {
            if (data[row][col].equals("Y")) {
                return new ImageIcon(PATH_TO_ICON);
            } else if(data[row][col].equals("N")) {
                return new ImageIcon();
                            } else return null;
        }
    }

    @Override
    public Class<?> getColumnClass(int col) {
        if (col < 2) {
            return String.class;
        } else {
            return ImageIcon.class;
        }
    }
}

最佳答案

根据需要设置列类(对于每一列)。正如@mKorbel 所提到的,另请参阅 How to Use Tables - Concepts: Editors and Renderers .

关于java - 在jtable中的某些列中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10482147/

相关文章:

java - 在循环中创建的按钮在单击时都会执行相同的操作

java - 包含大量信息的框架

java - 为什么在我工作的 JTextField 中输入的文本不可见/不可选择?

java - 如何检查jTable的复选框是否已勾选

java - 为 JTable 构建并发 TableColumnAdjuster

java - 将信息从 ArrayList 从一个类传递到 WindowsBuilder GUI 类

java - onConfigurationChanged() 未在方向更改时调用

java - 方法 Hibernate.createBlob() 已从 Hibernate 4.0.1 弃用并移至 Hibernate.getLobCreator(Session session).createBlob()

java - 将指向该对象的所有内容设置为 null

java - 在 Main 的非泛型定义类中调用泛型定义的方法