我正在制作一个 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/