带有非拉丁符号的Dialog中的println

时间:2014-01-05 16:20:44

标签: java unicode dialog acm-java-libraries

所以我想在ACM库对话框中使用Java中的非英语语言中的符号打印,但是当我运行它时,只显示小方块。

 IODialog dialog = getDialog();
 dialog.println("ზაზა");

1 个答案:

答案 0 :(得分:0)

IODialog使用JOptionPane进行实现,因此它受到与JOptionPane相同的unicode处理问题的影响。

Here有一种方法可以克服这个问题。但我们不喜欢链接,所以让我总结一下:

根据上面的评论,您想要探索的是使用字体。创建一个这样的新字体:

public class MyFont {

/*

  Below code I extracted from

  http://www.java-forums.org/java-tips/6522-swing-changing-component-default-font.html

  then i customized it.

 */

public static void setUIFont (javax.swing.plaf.FontUIResource f){

java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
  Object key = keys.nextElement();
  Object value = UIManager.get (key);
  if (value instanceof javax.swing.plaf.FontUIResource)
    UIManager.put (key, f);
  }
}
}

然后使用此行包含您的unicode字符的任何字体设置实际字体:

MyFont.setUIFont(new javax.swing.plaf.FontUIResource("Iskoola pota",Font.BOLD,18)); // setting the default font for application

这样做会改变你的默认字体。你不必再做了。如果您需要在进行更改之前更改回默认字体,那么您必须以这种方式重置默认字体。