我有一个名为iconLabel的类,它扩展了JLabel以生成按钮。 我使用Font Awesome字体将JLabel的文本设置为图标。我还在构造函数中向该iconLabel对象添加了另一个JLabel,以在图标上显示文本。问题是图标上的文字超出了图标的宽度,因此您将获得" ..."。我怎样才能使JLabel文本超出图标宽度? 这是一张图片以供澄清。
答案 0 :(得分:4)
问题是图标上的文字超出了图标的宽度,因此您将获得" ..."。
JLabel可以在图标顶部显示带有文字的图标。不需要自定义类来执行此操作。
基本代码是:
JLabel label1 = new JLabel( new ImageIcon(...) );
label1.setText( "Easy Way" );
label1.setHorizontalTextPosition(JLabel.CENTER);
label1.setVerticalTextPosition(JLabel.CENTER);
问题是我想使用字体真棒图标
所以你使用setText()方法,你得到一个图标画?酷!
也许你可以使用带有OverlayLayout
的JPanel。然后将两个标签添加到面板,确保alignmentX / Y值均为0.5f,以便组件在面板中居中。现在面板应该是最大标签的大小。
或许您可以使用Text Icon。此类允许您从文本字符串创建图标。您仍然需要标签,但尺寸应该正常工作。
代码应该是这样的:
JLabel iconLabel = new JLabel();
iconLabel.setFont(...);
TextIcon icon = new TextIcon(iconLabel, "...")
Jlabel label = new JLabel("some text");
label.setIcon(icon);