当前位置: 首页 > 知识库问答 >
问题:

如果JLabel中没有空间,如何隐藏一些文本?

文心思
2023-03-14

我在JLabel中有一些长文本,例如“Lorem ipsum dolor sit amet, consecetur adipiscing elit, se do eiusmod temor interdidunt ut labore et dolore magna aliqua”。如果用户调整窗口大小并且没有太多空间,我想隐藏一些文本。我想得到这样的东西“Lorem ipsum dolor sit...”。在JLabel或JTextArea中可能吗?

共有1个答案

龙承颜
2023-03-14

默认情况下,JLabel将用省略号(…)截断文本如果检测到没有足够的空间来显示文本。但是,如果您在应用程序中使用布局管理器,那么是否有足够的空间取决于布局管理器的意见。例如,BoxLayout和默认布局将注意窗口的大小,并允许标签截断:


fun labelInBoxLayout() {
  val frame = JFrame()
  frame.size = Dimension(300, 200)
  val panel = JPanel()
  panel.layout = BoxLayout(panel, BoxLayout.PAGE_AXIS)
  val longString = "WWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWW WWWWWWWWWWW"
  val label = JLabel(longString)
  panel.add(label)
  frame.add(panel)
  frame.isVisible = true
}

然而,无论当前窗口宽度如何,FlowLayout将坚持标签应在其文本的整个宽度上继续:

fun labelInFlowLayout() {
  val frame = JFrame()
  frame.size = Dimension(300, 200)
  frame.layout = FlowLayout()
  val longString = "WWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWW WWWWWWWWWWW"
  val label = JLabel(longString)
  frame.add(label)
  frame.isVisible = true
}

我发现,BorderLayout和SpringLayout以及嵌套在FlowLayout中的BoxLayout也是如此。如果您可以控制在应用程序中使用的布局,我建议您尝试不同的布局,以找到具有所需效果的布局。请记住,您可以向JPanel添加布局,因此可以从允许截断的帧范围布局开始,然后在帧的特定子部分中使用其他布局。

 类似资料:
  • 我是Android开发的新手。目前,我正在使用Firestore UI填充RecycerView。它可以正常工作,但现在我希望在RecycerView不包含数据或插入某些内容时动态隐藏/显示该视图。在我的适配器类中重写onDataChanged方法时,我注意到我可以正确地动态检测适配器中的项数是否为0。我如何使用它使我的RecycerView可见或不可见?

  • 我刚刚把我的超文本标记语言转换成WordPress。你可以在这里看到。我选择了每页显示一篇文章。 但是,我注意到我没有'Previous'链接和div。我现在只有'Next'链接和div。 如果我添加了'Previous'链接和div,我如何在我的主页中隐藏它(这里有最新的条目)?我如何在最后一个条目中隐藏“下一个”链接和div,而在最后一个条目页面中只显示“上一个”链接和div? 我想这个主题更

  • 隐藏CardView时如何删除空间?我用android和Firebase做了一个应用程序,我在cardviews中显示Firebase的信息,但当信息不正确时,cardview必须消失。重点是cardview消失了,但仍然在布局中使用了空格,我已经在 setVisibility(GONE)视图变得不可见,但仍然占用空间,但对我来说不起作用。 这是我的布局: 这是mview: 我希望你能帮助我。

  • 如果侧边栏中没有内容,我想隐藏它们,不幸的是,有26.000个函数可以调用你的侧边栏,我对此并不感兴趣。我只想隐藏我的侧边栏,如果它们是空的,当它们包含小部件时显示它们。 现在我不确定是应该使用get_sidebar函数还是dynamic_sidebar函数。另外,我想知道我是否应该使用侧边栏的名称。php调用它或函数中的ID。php

  • 问题内容: 我有一些服务器端HTML输出,我无法使用纯CSS来处理,本质上DIV有时适用: 要么 要么 要么 当DIV == 我要删除它。 有任何想法吗? 问题答案: 甚至更好(假设使用jQuery): 编辑:其他答案是好的,但OP想要删除空项目,而不是将其隐藏。

  • 问题内容: 我开发了一个简单的演示应用程序,其中包含启动屏幕,地图和一些常规屏幕。 我在顶部有一个包含徽标的操作栏。在我的手机(Galaxy s1 I9000 V2.3)上一切看起来都不错,但是当我在Galaxy s2 v4上对其进行测试时,动作栏也会出现在初始屏幕和地图屏幕中。 spalsh和map活动甚至都没有从ActionBarActivity继承,所以这怎么可能?我如何使它消失? 表现: