2

我知道如何将字符串放入 JTable 单元格中,并且我知道如何将图像放入 JTable 单元格中。但是是否可以将图像和字符串放入相同的 JTable 单元格中?

这样做的原因是我的 JTable 中有一个“状态”列,该列目前包含绿色、琥珀色或红色图像。为了满足设计要求,我需要在每张图片旁边添加一些解释性文字(所以绿色图片旁边的文字是“在线”,琥珀色图片旁边的文字是“未知”,接下来的文字到红色图像将是“离线”)。我需要在单列(或看起来/行为像单列)而不是两列中执行此操作。

我对此进行了研究,但根本没有找到任何信息。

4

1 回答 1

4

是的。

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

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

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());
于 2013-03-04T19:49:59.813 回答