java中字符串的字体设置
我可以在java中为字符串设置字体属性。
字体属性在您正在使用的GUI对象( JLabel
等)中的Font对象上设置,而不是在String
本身上设置。
编辑:
如果要向控制台添加格式,则必须在String
本身中嵌入格式。 为了使我的输出变为粗体,我需要执行以下操作:
System.out.println((char)27 +"[1m testing bold");
(char) 27
是一个转义序列, [
后跟一组;
不同格式类型的分隔值(见下文),后跟m
。 你需要玩这个。 在我的Mac上,命令提示符以粗体显示,因为在我退出之前我没有重置为正常( [0m
)。
顺便说一下,这个信息是从这里解除的。 一些属性:
0正常(全部清除) 1个大胆的 2昏暗 4下划线 5眨眼 7逆转 8空白 9次重击 22正常强度(取消加粗和空白) 24下划线 25眨眼 27倒退 28空白 29次重击 30黑色 31红色 32绿色 33黄色 34蓝色 35洋红色 36青色 37白色 40黑色背景 41红色背景 42绿色背景
String没有字体,因为它与显示它的方式完全分开。 字体与您用于向用户呈现String的用户界面组件相关,如何设置它将取决于这些用户界面组件。
我找到了另一种逃避“\ 033”的方法
另外,我想要关于“我在这里找到的akf属性图表”的官方属性列表 – 在“SGR(选择图形再现)参数”表中引用
我想补充一点,在eclipse控制台输出中,这些都不适合我。 我认为这是不可能的?
您可以使用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);