写真を撮って 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 に変更したところ、はるかにうまく機能しました。唯一の問題は、小さなフォントであっても、フレームが通常画面の外にあることです。しかし、サンプルするピクセル数を変更する方法があります。これにより、出力が小さくなります。