Java – 是否可以将图像和String放在同一个JTable单元中?

我知道如何将String放入JTable单元格,我知道如何将图像放入JTable单元格。 但是可以将图像和字符串放入SAME JTable单元格中吗?

原因是我的JTable中有一个’status’列,目前包含绿色,琥珀色或红色图像。 并且为了满足设计要求,我需要在每个图像旁边添加一些解释性文本(因此绿色图像旁边的文本将是“在线”,琥珀色图像旁边的文本将是“未知”,文本接下来红色图像将是“离线”)。 我需要在单个列中执行此操作(或者看起来/行为类似于单个列)而不是两列。

我研究了这个,但没有找到任何信息。

是。

您需要使用自定义单元格渲染器。 有关更多详细信息,请查看如何使用表 。

您实际上有两个选择,您只需设置单元格的图标和文本,或者您可以使用渲染器工具提示文本代替…

public class IconTextCellRemderer extend DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); setText(...); setIcon(...); setToolTipText(...); return this; } } 

当然,您需要将渲染器应用于列…

 TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(x).setCellRenderer(new IconTextCellRemderer());