2

在我的 Swing 应用程序中,我想要显示不同类型的文本。例如,我想在选项列表之前显示标题文本,例如:

    选择选项:
     一个
     b

我希望“选择选择”标签使用“标题”字体(我定义的东西),以及使用“选择”字体的选择。这种模式将出现在我的应用程序中的多个位置,所以理想情况下我想集中设置字体的位置。

我目前的方法是使用工厂来创建不同的标签类型:

LabelFactory.createHeadingLabel("LabelText");
LabelFactory.createChoiceLabel("ChoiceText");

工厂读取指定字体的属性文件,并在工厂中创建标签时自定义标签。我知道使用这样的工厂是可行的,但我不确定是否有标准的 Swing 约定来做这样的事情。任何输入将不胜感激。

4

2 回答 2

2

另一种方法是扩展JLabel.

您仍然可以从配置文件中读取字体,但是通过这种方式,您可以以与常规JLabel.

private JLabel header = new HeaderJLabel("Header text");

您所要做的就是覆盖自定义标签的构造函数。

此外,您应该只读取一次配置文件。将其加载到内存中,然后从内存中访问它。

于 2009-07-27T15:36:05.527 回答
0

您可以在许多 Swing 组件中使用有限的 html,因此您可以使用 html 为您的文本提供不同的样式。

例如,headingLabel.setText("< html><b>This text will be bold</b>< /html>"); 将为您提供一个带有粗体文本的标签。

注意:您必须从 <html> 和 </html> 中删除多余的空格

于 2009-07-27T18:58:41.267 回答