【问题标题】:Java Swing JLabel Text longer than boundsJava Swing JLabel 文本长于界限
【发布时间】:2013-03-19 13:11:16
【问题描述】:

我对 Java Swing JLabel 有疑问。 我想在 JLabel 上显示的文本超出了 JLabel 的范围。我想通过 Marqueeeffect 显示它。我已经实现了效果,但是当有一个字符串超出 JLabel 的范围时,它会被截断,其余的会被替换为“...”。

我的问题是,如果有机会单独设置 JLabel 的文本长度,而不取决于边界,它不会被截断吗?

希望有人能帮我解答。

我不使用任何 LayoutManagers 并且我不希望 JLabel 被调整大小,它只能包含比它的边界更长的文本。

【问题讨论】:

  • 看看this 发帖是否有帮助。
  • 参见this 帖子。
  • 我不使用任何 LayoutManagers 这是你的第一个,你的主要和唯一的问题。使用它们,许多问题都会自动解决,包括您在上面公开的问题。 我不希望 JLabel 调整大小这就像说 我想要一个冰淇淋,但我不想要一个冷的冰淇淋是冷的。如果您在 JLabel 上设置较大的文本并想查看全部内容,则必须更改其大小。
  • 其实我正在寻找一种关闭截断效果的方法,我想单独设置文本的长度,不依赖于边界
  • @PaulKloeppl(您需要在要通知的名称前添加“@”符号)。查看 Alepac 链接。无论如何,你绝对应该使用 LayoutManager 的。几乎没有你不需要的情况。我严重怀疑你的案子不需要。

标签: java swing jlabel bounds absolutelayout


【解决方案1】:

我想通过选取框效果来显示它。

查看Marquee Panel

【讨论】:

    【解决方案2】:

    在此LayoutTest 中,您可以看到标签的 UI 代理如何在标签的大小低于首选大小时使用 layoutCompoundLabel() 删除文本。

    在这个MarqueeTest中,MarqueePanel有一个默认的FlowLayout,它采用显示标签的首选大小。

    【讨论】:

      【解决方案3】:

      Swing JLabel 并非设计用于选取框滚动。

      这是 JLabel 的 source code。您可以修改文本处理例程以进行选取框滚动,而不是使用省略号压缩文本。

      哦,你最好使用布局管理器。如果没有布局管理器,您的选取框 JLabel 将无法正确布局。

      【讨论】:

      • 您好,感谢您的回答。我用子字符串做了一个工作。它不是那么流畅,但至少我可以显示比标签长的文本
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多