2012-02-21 87 views
2

Java Swing在小型大寫(小寫字母)中顯示文本有什麼方法嗎? http://en.wikipedia.org/wiki/Small_capsJava Swing中的小型大寫字母?

我已經通過Font.createFont()加載了一個支持小型大寫字母的自定義字體。文本應該以小型大寫的方式呈現。這可能在JLabel,JTextPane或其他組件?

+0

是可能的。你有什麼嘗試?你的代碼在哪裏? – 2012-02-21 10:55:21

+0

在我的小帽子字體中,小寫字母是小帽子,大寫字母是普通帽子。你的字體不是一樣的嗎?如果是這樣,那麼將字體作爲資源進行訪問並將其指定爲字體是一個問題。 – 2012-02-21 10:55:29

+0

對不起,你是對的。它在字體中。在文本處理器中選擇字體並在此情況下選擇不同樣式(如斜體,粗體或小寫字母)時,它將顯示爲具有不同樣式的一種字體。但他們實際上是同一個「字體」的所有單個字體。 http://en.wikipedia.org/wiki/Font 所以我只是採取了我的小型字體的正確的字體文件,並加載Font.createFont()。 – 2012-03-07 14:46:13

回答

1

你可以嘗試,它的工作原理:(我得到的字體這裏測試:http://www.fonts101.com/fonts/view/Uncategorized/28374/Tahoma_Small_Cap.aspx)當然

String labelText ="Dfd"; 
JLabel lbl = new JLabel(labelText); 
Font g=null; 
Font g2=null; 
try { 
     InputStream myStream = new BufferedInputStream(new FileInputStream("/home/alain/Bureau/tahomscb/tahomscb.ttf")); 
     g = Font.createFont(Font.TRUETYPE_FONT, myStream); 
     g2 = g.deriveFont(Font.PLAIN, 24); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
     System.err.println("font not loaded."); 
    } 
    lbl.setFont(g2); 
    this.add(lbl); //this is the parent component