我有一个名为iconLabel的类,它扩展了JLabel以生成按钮。我使用字体(字体)将JLabel的文本设置为图标。我还向构造函数中的iconLabel对象添加了另一个iconLabel,以在图标上显示文本。问题是图标上的文本超过了图标的宽度,所以您将得到“.”。如何才能使JLabel文本超过图标的宽度?这是一个需要澄清的图像。

发布于 2018-03-24 20:53:33
问题是图标上的文本超过了图标的宽度,所以您将得到“.”。
JLabel可以显示图标,在图标顶部画文字。没有必要使用自定义类来执行此操作。
基本守则是:
JLabel label1 = new JLabel( new ImageIcon(...) );
label1.setText( "Easy Way" );
label1.setHorizontalTextPosition(JLabel.CENTER);
label1.setVerticalTextPosition(JLabel.CENTER);问题是我想使用字体很棒的图标
那么,您使用了setText()方法并绘制了一个图标?凉爽的!
也许您可以使用JPanel和OverlayLayout。然后将这两个标签添加到面板中,确保对齐X/Y值都为0.5f,以便组件在面板中居中。现在面板应该是最大标签的大小。
或者你可以使用文本图标。这个类允许您从文本字符串创建图标。您仍然需要标签,但大小应该是正确的。
代码应该类似于:
JLabel iconLabel = new JLabel();
iconLabel.setFont(...);
TextIcon icon = new TextIcon(iconLabel, "...")
Jlabel label = new JLabel("some text");
label.setIcon(icon);https://stackoverflow.com/questions/49469780
复制相似问题