【问题标题】:How to Display Unicode Characters in Java Swing如何在 Java Swing 中显示 Unicode 字符
【发布时间】:2016-11-01 21:23:28
【问题描述】:

问题:我有 java 代码,我想显示一个 Unicode 字符,如下面的捕获图像。我成功在System.out.println 中显示,但在 java swing 中我无法显示字符。

问题:如何在 JTextPane 中显示 Unicode 字符,以便查看情绪?

代码

private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTextPane textPane = new JTextPane();
    System.out.println(String.valueOf("\u2622"));
    textPane.setContentType("text/html");
    textPane.setText("c'est " + String.valueOf("\u2622"));
    frame.getContentPane().add(textPane, BorderLayout.CENTER);
}

【问题讨论】:

  • 张贴图片代码,而不是图片代码。
  • 一定要用Font,可以显示感兴趣的字符!为此,您可以使用font.canDisplay(codePoint),如this answer 所示。

标签: java swing unicode


【解决方案1】:

据我所知,您的代码运行良好,您只需要在最后几行中输入pack()setVisible(true)

private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTextPane textPane = new JTextPane();
    System.out.println(String.valueOf("\u2622"));
    textPane.setContentType("text/html");
    textPane.setText("c'est " + String.valueOf("\u2622"));
    frame.getContentPane().add(textPane, BorderLayout.CENTER);
    frame.pack();            // Add these
    frame.setVisible(true);  // two lines
}

这应该会按预期显示 JTextPane。

【讨论】:

  • 抱歉,感谢您的帮助,但我添加了您的 2 行,但我无法解决我的问题,所以我想在 jtextpane 中显示 caratere Unicode ☢ =\u2622,而不是在 jtextpane 中显示这个字符 □ jtextpane。那是当它显示成这样□时的特性未知。亲切地
  • 别担心,我很乐意为您提供帮助。尝试将setContentType 更改为textPane.setContentType("text/html; charset=UTF-8");
  • 谢谢它的工作,但是当我尝试另一个像这样的字符 Unicode ?= \u1F604 他们没有向我显示结果。好像是□4。所以我尝试将 UTF-8 更改为 UTF-16,但 Steel 不起作用。我该如何解决这个问题。
  • 对不起,我不知道如何获取那些 unicode 字符。您可能应该在一个新问题上提出这个问题
猜你喜欢
  • 1970-01-01
  • 2011-12-28
  • 2011-07-18
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多