我正在尝试在JTextPane中设置字体宽度,但不知怎的,我没有找到如何做到这一点。
以下是我已有的代码:
Font resultFont = new Font("Courier", Font.PLAIN, 12);
JTextPane resultPane = new JTextPane();
resultPane.setText(result);
resultPane.setFont(resultFont);
resultPane.setEditable(false);
add(resultPane);
如果有可能拉伸字体会非常酷,因为我想显示一些ASCII-Art。
答案 0 :(得分:5)
您想要实际拉伸字符还是仅调整“字距调整”(字符间的空格)。 如果它只是字距调整:你可以找到解决方案here
答案 1 :(得分:1)
我认为您正在寻找等宽字体:SWT - OS agnostic way to get monospaced font
这是一个例子:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class TestProject extends JPanel{
public TestProject(){
super();
JTextPane ta = new JTextPane();
//If you want to adjust your line spacing too
MutableAttributeSet set = new SimpleAttributeSet();
StyleConstants.setLineSpacing(set, -.2f);
ta.setParagraphAttributes(set, false);
//Making font monospaced
ta.setFont(new Font("Monospaced", Font.PLAIN, 20));
//Apply your ascii art
ta.setText(" .-.\n(o o) boo!\n| O \\\n \\ \\\n `~~~'");
//Add to panel
add(ta, BorderLayout.CENTER);
}
public static void main(String args[])
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setContentPane(new TestProject());
frame.pack();
frame.setVisible(true);
}
});
}
}