我对 Java Swing JLabel 有疑问。我想在 JLabel 上显示的文本超出了 JLabel 的范围。我想通过 Marqueeeffect 显示它。我已经实现了效果,但是当有一个字符串超出 JLabel 的范围时,它会被切断,其余的会被替换为“...”。
我的问题是,如果有机会单独设置 JLabel 的文本长度,而不取决于边界,它不会被切断?
希望有人为我解答。
我不使用任何 LayoutManagers 并且我不希望 JLabel 调整大小,它应该只能包含比它的边界更长的文本。
我对 Java Swing JLabel 有疑问。我想在 JLabel 上显示的文本超出了 JLabel 的范围。我想通过 Marqueeeffect 显示它。我已经实现了效果,但是当有一个字符串超出 JLabel 的范围时,它会被切断,其余的会被替换为“...”。
我的问题是,如果有机会单独设置 JLabel 的文本长度,而不取决于边界,它不会被切断?
希望有人为我解答。
我不使用任何 LayoutManagers 并且我不希望 JLabel 调整大小,它应该只能包含比它的边界更长的文本。
我想通过 Marqueeeffect 显示它。
查看选取框面板。
在本文LayoutTest中,您可以看到标签的 UI 代理如何在layoutCompoundLabel()标签大小低于首选大小时删除文本。
其中MarqueeTest,MarqueePanel有一个默认值FlowLayout,它采用显示标签的首选大小。

Swing JLabel 不是为做选取框滚动而设计的。
这是 JLabel 的源代码。您可以修改文本处理例程以进行选取框滚动,而不是使用省略号压缩文本。
哦,你最好使用布局管理器。如果没有布局管理器,您的选取框 JLabel 将无法正确布局。