java JLabel文本超出父JLabel宽度

java JLabel文本超出父JLabel宽度,java,swing,Java,Swing,我有一个名为iconLabel的类,它扩展了JLabel来制作按钮。 我使用字体Awesome字体将JLabel的文本设置为图标。我还向构造函数中的iconLabel对象添加了另一个JLabel,以在图标上显示文本。问题是图标上的文本超出了图标的宽度,因此您将得到“…”。如何使JLabel文本超过图标宽度? 这是一张澄清的图片 问题是图标上的文本超出了图标的宽度,因此您将得到“…” JLabel可以显示图标,并在图标顶部绘制文本。不需要自定义类来执行此操作 基本准则是: JLabel labe

我有一个名为iconLabel的类,它扩展了JLabel来制作按钮。 我使用字体Awesome字体将JLabel的文本设置为图标。我还向构造函数中的iconLabel对象添加了另一个JLabel,以在图标上显示文本。问题是图标上的文本超出了图标的宽度,因此您将得到“…”。如何使JLabel文本超过图标宽度? 这是一张澄清的图片

问题是图标上的文本超出了图标的宽度,因此您将得到“…”

JLabel可以显示图标,并在图标顶部绘制文本。不需要自定义类来执行此操作

基本准则是:

JLabel label1 = new JLabel( new ImageIcon(...) );
label1.setText( "Easy Way" );
label1.setHorizontalTextPosition(JLabel.CENTER);
label1.setVerticalTextPosition(JLabel.CENTER);

问题是,我想使用的字体可怕的图标

那么您使用setText()方法并绘制了一个图标?酷

也许您可以使用带有
overlylayout
的JPanel。然后将两个标签添加到面板中,确保alignmentX/Y值均为0.5f,以便组件在面板中居中。现在面板应该是最大标签的大小

或者你也可以用这个。此类允许您从文本字符串创建图标。您仍然需要添加标签,但大小调整应该正确

代码应该类似于:

JLabel iconLabel = new JLabel();
iconLabel.setFont(...);
TextIcon icon = new TextIcon(iconLabel, "...")
Jlabel label = new JLabel("some text");
label.setIcon(icon);
问题是图标上的文本超出了图标的宽度,因此您将得到“…”

JLabel可以显示图标,并在图标顶部绘制文本。不需要自定义类来执行此操作

基本准则是:

JLabel label1 = new JLabel( new ImageIcon(...) );
label1.setText( "Easy Way" );
label1.setHorizontalTextPosition(JLabel.CENTER);
label1.setVerticalTextPosition(JLabel.CENTER);

问题是,我想使用的字体可怕的图标

那么您使用setText()方法并绘制了一个图标?酷

也许您可以使用带有
overlylayout
的JPanel。然后将两个标签添加到面板中,确保alignmentX/Y值均为0.5f,以便组件在面板中居中。现在面板应该是最大标签的大小

或者你也可以用这个。此类允许您从文本字符串创建图标。您仍然需要添加标签,但大小调整应该正确

代码应该类似于:

JLabel iconLabel = new JLabel();
iconLabel.setFont(...);
TextIcon icon = new TextIcon(iconLabel, "...")
Jlabel label = new JLabel("some text");
label.setIcon(icon);

问题是我想使用字体很棒的图标,因为它们很容易上色和调整大小。啊,好的,我现在使用这个代码,但我仍然有一个问题。我的文本仍然太宽,缺少的部分被替换为“…”@xX4m4zingXx然后,猜测一下,您手动设置父容器的大小,不让布局管理器在那里执行任务。这是真的,我使用空布局,因为在我看来它更容易使用,而且我可以让我的框架看起来像我想要的,但不是在这种情况下:p“我使用空布局,因为它更容易使用…”,但它会导致基本上崩溃的GUI——就像这个一样“不使用布局”是首先要解决的问题。上面看到的图标的排列可以通过使用
JPanel
中的一列
GridLayout
EmptyBorder
来实现,把面板放在
BorderLayout
行的开始处,我现在使用这个代码,但我仍然有一个问题。我的文本仍然太宽,缺少的部分被替换为“…”@xX4m4zingXx然后,猜测一下,您手动设置父容器的大小,不让布局管理器在那里执行任务。这是真的,我使用空布局,因为在我看来它更容易使用,而且我可以让我的框架看起来像我想要的,但不是在这种情况下:p“我使用空布局,因为它更容易使用…”,但它会导致基本上崩溃的GUI——就像这个一样“不使用布局”是首先要解决的问题。可以使用
JPanel
中带有
EmptyBorder
的单列
GridLayout
来实现上述图标的排列,将该面板置于
BorderLayout
行开始处。