如果 JLabel 中没有 space,如何隐藏一些文本?
How to hide some text if there is no space in JLabel?
我在 JLabel 中有一些长文本,例如“事实是痛苦本身很重要,教导会遵循,但同时会发生一些伟大的工作和痛苦”。如果用户调整 window 的大小并且 space 不多,我想隐藏一些文本。我想得到这样的东西可以在 JLabel 或 JTextArea 中使用吗?
默认情况下,JLabel
会在检测到 space 不足以显示文本时使用省略号 (...) 截断文本。但是,如果您在应用程序中使用布局管理器,那么是否有足够的 space 取决于布局管理器的意见。例如BoxLayout
,默认布局会注意window的大小,允许标签截断:
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
将坚持标签应在其文本的整个宽度上继续,而不管当前 window 宽度如何:
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
也是如此20=]。如果您可以控制在应用程序中使用的布局,我建议您尝试不同的布局以找到具有所需效果的布局。请记住,您可以向 JPanel
中添加布局,因此您可以从允许截断的全帧布局开始,然后在框架的特定子部分使用其他布局。
我在 JLabel 中有一些长文本,例如“事实是痛苦本身很重要,教导会遵循,但同时会发生一些伟大的工作和痛苦”。如果用户调整 window 的大小并且 space 不多,我想隐藏一些文本。我想得到这样的东西可以在 JLabel 或 JTextArea 中使用吗?
JLabel
会在检测到 space 不足以显示文本时使用省略号 (...) 截断文本。但是,如果您在应用程序中使用布局管理器,那么是否有足够的 space 取决于布局管理器的意见。例如BoxLayout
,默认布局会注意window的大小,允许标签截断:
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
将坚持标签应在其文本的整个宽度上继续,而不管当前 window 宽度如何:
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
也是如此20=]。如果您可以控制在应用程序中使用的布局,我建议您尝试不同的布局以找到具有所需效果的布局。请记住,您可以向 JPanel
中添加布局,因此您可以从允许截断的全帧布局开始,然后在框架的特定子部分使用其他布局。