java - 在 JTable 中显示 Emoji 字符

标签 java swing encoding fonts jtable

我要显示loudspeaker characterJTable 中:

    @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 .

最佳答案

是的,你需要两件事:

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

  • 一个 TableCellRenderer,在其中使用字体,如图所示 here .

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

关于java - 在 JTable 中显示 Emoji 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778769/

相关文章:

java - 使用 java 和 JSON 生成一组空的 Json 大括号

java - 测试 Java Bean 是否具有 PropertyChangeSupport

java - 无法加载包含的 JKS keystore

java - 如何追踪 Java 中看似随机的崩溃?

java - 禁用 PathVariables 的假编码

Java JTextfields

java - 多帧/用户输入(可见性)

java - 是否可以让你添加到java中的组件的代码变得更小?

php - 网站/数据库文本编码问题

linux - 如何在 bash 中转换文本文件? (foo.txt 到 bar.txt)