设置JLabel的宽度并在悬停时添加工具提示

Goa*_*cat 3 java user-interface swing jlabel

我的JLabel内容未知,我有两件事我想做:

  • 我想设置标签的最大宽度甚至是静态宽度.如果文本比标签大,那么它会缩短它,如下所示:

Verylonglabel

Veryl

在gui中对组件使用静态宽度是一个坏主意吗?如果是这样的话,那么替代方案是什么?请给我建议!

  • 当您将鼠标悬停在标签上时,我想要一个带有全长字符串的工具提示.因此,在我们的情况下,如果我将鼠标悬停在标有"Veryl"的标签上,则会出现显示"Verylonglabel"的工具提示.但是,它应显示带有全长字符串的工具提示,即使它没有缩短.

非常感谢您对这两种方面的帮助.

到目前为止,我只是搞砸了一下,并尝试了这样的事情而没有成功.它似乎根本不关心大小.

JLabel label = new JLabel("Verylonglabel");     
label.setSize(15, 5);
Run Code Online (Sandbox Code Playgroud)

最好的问候,Goatcat

Rob*_*bin 5

您的大小JLabelLayoutManager父容器的大小决定.有关更多信息,请参阅教程.

请注意,JLabel已经有您正在寻找的行为

  1. 当文本太长时,截止的文本将被替换为"...".因此,在您的示例中,"Verylonglabel"将被替换为例如"Verylo ..."
  2. 您可以使用该setToolTipText方法指定工具提示,将鼠标悬停在工具提示上时显示JLabel