2010-07-16 14 views
7

Estoy tratando de imprimir unicode en un JTextArea. He conseguido que se imprima bien en la consola, pero cuando trato de imprimirlo en el área de texto, obtengo cuadros para todos los dos caracteres byte unicode. Cualquier ayuda sería muy apreciada.Visualización de Unicode en Java JTextArea

package edu.afit.jieddo; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class JTextAreaDemo extends JFrame { 
    StringBuffer m = new StringBuffer("\u14c7 \u14c4 \u1557 \u00d6"); 
    StringBuffer m2 =new StringBuffer(" means one."); 
    String message = m.append(m2).toString(); 

    public JTextAreaDemo() { 
     super("\u14c7 \u14c4 \u1557 \u00d6"); 
     java.awt.Font font = new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 18); 
     JTextArea textArea = new JTextArea(message); 
     textArea.setFont(font); 

     java.awt.Container container=this.getContentPane(); 
     container.add(textArea); 
     System.out.println(textArea.getFont().getFamily());// testing output in the command line 
    } 

    public static void main(String[] args) { 
     JTextAreaDemo frame = new JTextAreaDemo(); 
     frame.setFont(new Font("Arial Unicode MS",Font.ITALIC,11)); 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 
    System.out.println("\u14c7 \u14c4 \u1557 \u00d6"); 
     System.out.println(frame.getFont().getFamily());//testing output in the command line 
    } 
} 

Respuesta

3

De esos caracteres Unicode, Arial Unicode MS solo proporciona U + 00d6.

Intente utilizar DejaVu Sans.

BTW, FileFormat.info es un gran recurso para caracteres Unicode. Simplemente reemplace XXXX en esta URL con el número Unicode: http://www.fileformat.info/info/unicode/char/XXXX/index.htm. Por ejemplo: http://www.fileformat.info/info/unicode/char/14C7/index.htm

+0

Devon, ¡perfecto! Si bien no tuve DejaVu Sans, sí tuve Euphemia y eso lo solucionó de inmediato. ¡Muchas gracias! – JimmyButterfly

1

En mi sistema Ubuntu, que probablemente nunca ha oído hablar de "Arial Unicode MS", el programa se ejecuta sin cambios, sin problemas. Los dos primeros caracteres que veo tanto en la barra de título como en el área de texto se ven como caracoles y apuntan en diferentes direcciones. O como minúsculas d y b acostadas sobre sus espaldas.

Además de un cambio en el tamaño, veo los mismos caracteres cuando elimino las llamadas setFont.

Por lo tanto, es mi conjetura de que las fuentes que está utilizando no contienen esos caracteres. Err, glifos para esos personajes.

Hay una utilidad de visor de fuentes en Windows donde puede ver todos los caracteres de una fuente. ¿Aparecen los caracoles?

+0

Carl, muchas gracias por informarme que no estaba loco. Pasé una semana mirando un código que se veía bien y dejando mensajes sin contestar en tableros de mensajes. ¡Estoy tan contento de haber encontrado Stackoverflow! ¡Que tenga un gran fin de semana! – JimmyButterfly

Cuestiones relacionadas