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

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

【问题讨论】:

标签: java swing jtable tablecellrenderer


【解决方案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());

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 2014-06-30
    • 2018-01-16
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多