我可以在java中为字符串设置字体属性吗。
答案 0 :(得分:9)
字体属性在您正在使用的GUI对象(JLabel
等)中的Font对象上设置,而不是在String
本身上。
编辑:
如果要向控制台添加格式,则必须在String
内嵌入格式。为了使我的输出变为粗体,我需要执行以下操作:
System.out.println((char)27 +"[1m testing bold");
(char) 27
是一个转义序列,[
后跟一组;
个不同格式类型的分隔值(见下文),后跟m
。你需要玩这个。在我的Mac上,命令提示符以粗体显示,因为在我退出之前我没有重置为正常([0m
)。
顺便提一下,此信息已从here解除。 一些属性:
0 Normal (clear all) 1 bold 2 dim 4 underline 5 blink 7 reverse 8 blank 9 overstrike 22 normal intensity (cancel bold and blank) 24 underline off 25 blink off 27 reverse off 28 blank off 29 overstrike off 30 black 31 red 32 green 33 yellow 34 blue 35 magenta 36 cyan 37 white 40 black background 41 red background 42 green background
答案 1 :(得分:2)
String没有字体,因为它与显示它的方式完全分开。 字体与您用于向用户呈现字符串的用户界面组件相关,如何设置它将取决于这些用户界面组件。
答案 2 :(得分:1)
我找到了逃避“\ 033”here
的另一种方法另外,我想要关于“找到here的akf属性图表的官方属性列表” - 在“SGR(选择图形再现)参数”表中引用
我想补充一点,在eclipse控制台输出中,这些都不适合我。我认为这是不可能的?
答案 3 :(得分:0)
您可以使用AttributedString
。以下是一些示例:JavaDocExamples
Font font = new Font("LucidaSans", Font.PLAIN, 14);
AttributedString messageAS = new AttributedString(textMessage);
...
messageAS.addAttribute(TextAttribute.FONT, font);
AttributedCharacterIterator messageIterator = messageAS.getIterator();
FontRenderContext messageFRC = graphics2D.getFontRenderContext();
LineBreakMeasurer messageLBM = new LineBreakMeasurer(messageIterator, messageFRC);