Java 在JTable中显示表情符号

Java 在JTable中显示表情符号,java,swing,encoding,fonts,jtable,Java,Swing,Encoding,Fonts,Jtable,我想在JTable中显示: @Override public Object getValueAt(int row, int col) { switch (col) { [...] case 2: String symbol = "\uD83D\uDD0A"; return "State " + symbol; defaul

我想在
JTable
中显示:

    @Override
    public Object getValueAt(int row, int col)
    {
        switch (col) {
            [...]
            case 2:
                String symbol = "\uD83D\uDD0A";
                return "State " + symbol;
            default:
                return "";
        }
    }
不幸的是,我只看到一个方形的盒子。我不确定是否必须设置支持此字符的特定
字体
,或应用其他编码

对于正在寻找解决方案的谷歌用户:

我为JTable实现了一个定制渲染器,比如@trashgod sugested。示例可用或。

是的,您需要两件事:

  • 包含所需字形的字体,如图所示加载

  • 要在其中使用字体的
    TableCellRenderer
    ,如图所示


可选地,考虑一个<代码> TabelEngReleRever < /代码>,实现了<代码>图标< /代码>接口,如图所示。图形上下文的

fill(Polygon)
drawArc()
方法应产生令人满意的结果

如果您不确定字符编码,请检查每个表情符号都包含正确的unicode值。我尝试了表情符号java,但它只是有助于简化这些字符的使用,但无助于解决字体问题。最后,我成功地通过@trashgod sugestion实现了TableCellRenderer来查看iconsI无法在JTable单元格中显示emoij。它不起作用。我有一个渲染器设置,我正在使用Vincent的emoij java。在渲染器内部,我已经有了setText(EmojiParser.parseToUnicode(value.toString()),其中value是对象——它是一个StringBuffer,这就是我需要toString()的原因。少了什么?好的,谢谢。我解决了这个问题,使用TableCellRenderer按照您的建议显示图标!