在JTable中显示表情符号字符

时间:2014-11-06 11:50:13

标签: java swing encoding fonts jtable

我想在JTable

中显示loudspeaker character
    @Override
    public Object getValueAt(int row, int col)
    {
        switch (col) {
            [...]
            case 2:
                String symbol = "\uD83D\uDD0A";
                return "State " + symbol;
            default:
                return "";
        }
    }

不幸的是,我只看到一个方框。我不确定是否必须设置支持此字符的特定Font或应用其他编码。

对于寻求解决方案的Google员工:
我为JTable实现了一个CustomRenderer,比如@trashgod sugested。示例可用herehere

1 个答案:

答案 0 :(得分:2)

是的,你需要两件事:

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

  • 要使用该字体的TableCellRenderer,如here所示。

或者,考虑实现TableCellRenderer接口的Icon,如图here所示。图形上下文的fill(Polygon)drawArc()方法应该会产生令人满意的结果。