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);