【问题标题】:Apply small caps to a text in java swing将小型大写字母应用于java swing中的文本
【发布时间】:2014-03-04 13:37:51
【问题描述】:

我有以下代码:

  headerLabel.setText("TEST APPLICATION DATA");  

// headerLabel.setFont(new Font("",Font.ITALIC,25)); headerLabel.setFont(new Font("世纪教科书L",Font.BOLD,22));

所需的字体是 Century SchoolBook,我希望每个单词的第一个字母比单词的其他字母大。所有大写字母,但每个单词的首字母应比其他字母大。

我应该如何应用这个?

【问题讨论】:

  • 不能像现在这样,字体应用到整个文本
  • 也许您可以打开 Photoshop 或其他类型的软件...按照您想要的方式设计字母,然后将其保存为图片。然后,将图片添加到您的 GUI。

标签: java swing fonts


【解决方案1】:

阅读 How to Use HTML in Swing Components 上的 Swing 教程部分。

因此,您需要将文本包装在 HTML 中。第一个字母将使用与其余字母不同的字体大小。

编辑:

类似:

JLabel label2 = new JLabel("<html><font size=\"25\">T</font>EST APPLICATION DATA</html>");
label2.setFont(new Font("Century Schoolbook L" ,Font.BOLD ,22));

编辑 2:

另一种选择是使用自定义的 JTextPane(使其看起来像 JLabel。然后您可以将不同的字体应用于文本。这种方法的好处是当您不需要解析文本来构建HTML 字符串,当您使用 getText() 方法时,您将获得文本,而不是格式化字符串。

【讨论】:

  • 我正在阅读它。但是它会应用 CenturySchoolBook 字体吗?
  • camickr:我曾尝试将文本字符串包装在 html 中,但它没有应用样式 font-variant:small caps
  • 嘿,它成功了。我使用了简单的字体标签,结果显示出来了。谢谢!!我已经接受了你的回答。但我之前遇到的一个问题是我使用的是
  • @user2822187,快点,我只是在添加示例。
  • 你可以把它放出来,这样如果他们正在寻找同样的东西,它可以帮助其他人
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 2021-05-09
相关资源
最近更新 更多