A String
böyle boyanabilir:Boyama Japon karakterler
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
try {
g2d.setColor(Color.BLACK);
g2d.setFont(new Font("Serif", Font.PLAIN, 12));//Japanese characters are visible
//g2d.setFont(new Font("Arial", Font.PLAIN, 12));//Japanese characters are not visible (squares only)
g2d.drawString("Berryz工房 『ROCKエロティック』(Berryz Kobo[Erotic ROCK]) (MV)", 10, 45);
} finally {
g2d.dispose();
}
}
Sorun g2d.setFont(new Font("Arial", Font.PLAIN, 12));
yaparsak olmasıdır - Japon karakterler sadece görünmez yerine kareler:
Ve g2d.setFont(new Font("Serif", Font.PLAIN, 12));
gibi yazı tipi ayarlarsanız - her şey çalışıyor:
Örneğin, MS WordPad karakterler görülebilir:
Ama Arial
yazı kullanmak istiyorum. Belki Japon karakterini tespit etmeli ve farklı yazı tiplerine geçmeli ve sonra tekrar dönmeliyim?
Muhtemelen [Font.canDisplayUpTo (String)] özelliğini kullanmanız gerekir (http://docs.oracle.com/javase/7/docs/api/java/awt/Font.html#canDisplayUpTo%28java.lang.String%29) Arial'in nerede görüntülenebileceğini kontrol etmek için Japon yazı tipine geçin ve tüm yazı yazılana kadar tekrarlayın. Seçilen ana yazı karakteri karakter oluşturamazsa, Wordpad ve MS Word, belirli bir komut dizisi için bazı varsayılan yazı tiplerine geri dönecektir. – nhahtdh
Evet, 'Font.canDisplayUpTo (String)' burada yardımcı olacaktır, ancak nasıl uygulanacağı .. :) Başka bir bulmaca, ama en azından mümkün. Arial Unicode - büyük olabilir, ama ticari uygulamalarla gemiye izin vermek ne kadar mal olur? .. –