【发布时间】:2013-12-22 04:14:15
【问题描述】:
如何制作包含不同类型数据的JTable列? (有些单元格包含图像,有些单元格包含文本)
像这样:
我尝试制作 CellRenderer,但它不起作用。
col.setCellRenderer(new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (value instanceof ImageIcon) {
ImageIcon img = (ImageIcon) value;
setIcon(img);
setHorizontalAlignment(JLabel.CENTER);
}
else {
setValue(value);
}
return this;
}
});
它给了我这个奇怪的输出:
没有渲染器,它可以很好地输出文本和数字,但不显示图像:
【问题讨论】:
-
"JTable:文本和图像在同一列中" 使用
JLabel作为rendering component。该标签同时支持ImageIcon和文本。 -
不知道怎么可能,有三种方法,每种方法都取决于您的 XxxTableModel 中的设置
-
JTable 有一个 ImageIcon 的默认渲染器,如果你正确地投射它,它应该可以工作。
-
向我们展示您的代码的 sn-p,您可以在其中将 ImageIcon 添加到表中。(包含它的行/列)
标签: java image swing text jtable