在我的swing应用程序中,我有不同类型的文本要显示。例如,我想在选择列表之前显示标题文本,例如:
Select choice: a b
我希望“选择选择”标签使用“标题”字体(我定义的东西),以及使用“选择”字体的选项。这种模式会在我的应用程序中出现多个位置,所以理想情况下我想集中设置字体的位置。
我目前的做法是使用工厂来创建不同的标签类型:
LabelFactory.createHeadingLabel("LabelText");
LabelFactory.createChoiceLabel("ChoiceText");
工厂读入指定字体的属性文件,并在工厂中创建标签时自定义标签。我知道使用像这样的工厂有效,但我不确定是否有一个标准的Swing约定来做这样的事情。任何意见都将不胜感激。
答案 0 :(得分:2)
另一种方法是扩展JLabel
。
您仍然可以从配置文件中读取字体,但通过这种方式,您可以使用与常规JLabel
更相似的方式创建标签。
private JLabel header = new HeaderJLabel("Header text");
您只需覆盖自定义标签的构造函数即可。
此外,您应该只读取配置文件一次。将其加载到内存中,然后从内存中访问它。
答案 1 :(得分:0)
您可以在许多Swing组件中使用有限的html,因此您可以使用html为文本提供不同的样式。
例如,headingLabel.setText("< html><b>This text will be bold</b>< /html>");
会给你一个带有粗体文字的标签。
注意:你必须从&lt;中删除多余的空格。 HTML&GT;和&lt; / HTML&GT;