Java - 是不是可以将图像和字符串放在同一个 JTable 单元格中?

Posted

技术标签:

【中文标题】Java - 是不是可以将图像和字符串放在同一个 JTable 单元格中?【英文标题】:Java - Is it possible to put an image and a String in the same JTable cell?Java - 是否可以将图像和字符串放在同一个 JTable 单元格中? 【发布时间】:2013-02-18 23:21:56 【问题描述】:

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

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

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

【问题讨论】:

查看问题***.com/questions/1291948/… 【参考方案1】:

是的。

您需要使用自定义单元格渲染器。查看How to use Tables了解更多详情。

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

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());

【讨论】:

以上是关于Java - 是不是可以将图像和字符串放在同一个 JTable 单元格中?的主要内容,如果未能解决你的问题,请参考以下文章

图像标签 - 如何在 url 失败的情况下放置一个 ICON(不是字符串 - 不是 URL)?

XML 绝对布局将图像放在左下角和右下角

R或Java:是不是有将邮政编码转换为纬度和经度并放在地图上的包?

是否可以将图像放在带有iText的彩色矩形上?

使用python将图像放在另一个图像上

如何将图像引用放在 Django db 的字符字段中?