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)?