2010-07-16 33 views
7

Tôi đang cố gắng in unicode trong JTextArea. Tôi đã nhận được nó để in tốt để giao diện điều khiển nhưng khi tôi cố gắng in nó vào textarea, tôi nhận được hộp cho tất cả các ký tự unicode hai byte. Bất kì sự trợ giúp nào đều được đánh giá cao.Hiển thị Unicode trong 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 
    } 
} 

Trả lời

3

Trong số các ký tự Unicode đó, Arial Unicode MS chỉ cung cấp U + 00d6.

Thử sử dụng DejaVu Sans.

BTW, FileFormat.info là tài nguyên tuyệt vời cho các ký tự Unicode. Chỉ cần thay thế XXXX trong URL này bằng số unicode: http://www.fileformat.info/info/unicode/char/XXXX/index.htm. Ví dụ: http://www.fileformat.info/info/unicode/char/14C7/index.htm

+0

Devon, hoàn hảo! Trong khi tôi không có DejaVu Sans, tôi đã có Euphemia và nó đã sửa nó ngay lập tức. Cám ơn rất nhiều! – JimmyButterfly

1

Trên hệ thống Ubuntu của tôi, có thể chưa bao giờ nghe nói về "Arial Unicode MS", chương trình của bạn thực thi không thay đổi, hoàn hảo. Hai ký tự đầu tiên tôi thấy cả trong thanh tiêu đề và vùng văn bản, trông giống như ốc, chỉ theo các hướng khác nhau. Hoặc giống như chữ thường db nằm trên lưng.

Ngoài thay đổi về kích thước, tôi thấy các ký tự giống nhau khi tôi xóa các cuộc gọi setFont.

Do đó, giáo dục của tôi đoán rằng phông chữ bạn đang sử dụng không chứa các ký tự đó. Err, glyphs cho những nhân vật đó.

Có tiện ích xem phông chữ trong Windows nơi bạn có thể xem tất cả ký tự trong phông chữ. Ốc có xuất hiện không?

+0

Carl, cảm ơn rất nhiều vì đã cho tôi biết tôi đã không phát điên. Tôi đã dành một tuần để xem mã có vẻ tốt và để lại các thư chưa được trả lời trên các bảng tin. Tôi rất vui vì tôi đã tìm thấy stackoverflow! Chúc bạn một ngày cuối tuần tuyệt vời! – JimmyButterfly

Các vấn đề liên quan