我写了一个程序,它拍摄一张照片并创建一个ASCII表示(ASCII艺术)。起初,我将ASCII字符串写入控制台,但现在我有一个包含文本的JLabel。但是,JLabel输出是不规则的,不如控制台输出。我尝试在JLabel中使用等宽字体(Droid Sans Mono)作为字体,因为它是我用于控制台输出的字体,但输出仍然不规则。在Swing/JLabel中指定等宽字体是否有更好的方法?等宽摆动文本
下面是我用它来创建JLabel中的方法:
public JLabel formatLabel(){
String l = "<html>";
for(int j = 0; j < height; j+=patchSize){
for(int k = 0; k < width; k+=patchSize){
l+=imageArray.get(j).get(k);
}
l+="<br>";
}
l+="</html>";
return new JLabel(l);
}
我使用指定字体行:
label.setFont(new Font("Droid Sans Mono", Font.PLAIN, 6));
编辑:我改变JLabel以一个JTextArea和效果更好。唯一的问题是即使是一个很小的字体,框架通常在屏幕之外。但是我有一种方法可以改变像素的数量,从而使输出变小。
尝试使用'label.setFont(新字体(Font.MONOSPACED,Font.PLAIN,6));'看,如果这就是问题所在。 – rtheunissen 2012-07-21 01:08:14