我编写了一个程序,它可以拍摄一张照片并创建一个 ASCII 表示(ASCII 艺术)。起初,我将 ASCII 字符串写入控制台,但现在我有一个保存文本的 JLabel。但是,JLabel 输出是不规则的,并且不像控制台输出那样均匀。我尝试使用等宽字体(Droid Sans Mono)作为 JLabel 中的字体,因为它是我用于控制台输出的字体,但输出仍然不规则。有没有更好的方法在 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 并且效果更好。唯一的问题是即使是很小的字体,框架通常也在屏幕之外。但是我有一种方法可以改变要采样的像素数,这会使输出更小。