我正在制作JTable
前两列包含字符串,其余列包含图标(特别是类的对象ImageIcon
)的位置。我知道该怎么做,但是如何在 1 个表中混合两者,以使某些列返回字符串而其他列返回图标?
--EDIT--
代码解释:数据是一个二维字符串数组。对于前两列,我希望它们按原样显示在表格中。对于所有其余的列,只有两个可能的值,“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;
}
}
}