Java 如何使JLabel只显示第一行文本?

Java 如何使JLabel只显示第一行文本?,java,swing,jlabel,Java,Swing,Jlabel,请看这张照片: 这是一个高度不允许变化的JLabel。但是,当有太多文本无法容纳其给定大小时,它会尝试同时显示两行。我不想这样,我如何使它只显示“in new”前的第一行?为什么不使其可滚动?这样,您可以保持首选大小,同时在需要时显示信息。您只需将JLabel放入JScrollPane中: JScrollPane scroller = new JScrollPane(yourJLabel, JScrollPane.V

请看这张照片:


这是一个高度不允许变化的JLabel。但是,当有太多文本无法容纳其给定大小时,它会尝试同时显示两行。我不想这样,我如何使它只显示“in new”前的第一行?

为什么不使其可滚动?这样,您可以保持首选大小,同时在需要时显示信息。您只需将JLabel放入JScrollPane中:

JScrollPane scroller = new JScrollPane(yourJLabel,
                                       JScrollPane.VERTICAL_SCROLLABAR_AS_NEEDED,
                                       JScrollPane.HORIZONTAL_SCROLLABAR_AS_NEEDED);

为什么不让它可以滚动呢?这样,您可以保持首选大小,同时在需要时显示信息。您只需将JLabel放入JScrollPane中:

JScrollPane scroller = new JScrollPane(yourJLabel,
                                       JScrollPane.VERTICAL_SCROLLABAR_AS_NEEDED,
                                       JScrollPane.HORIZONTAL_SCROLLABAR_AS_NEEDED);

解决方案是不使用html(即字符串内部的“
),因为这是导致行过长时扭曲的原因。所有的粗体和单空格都必须在不使用html的情况下完成。

解决方案是不使用html(即,字符串内部的
),因为这是导致行过长时扭曲的原因。所有的粗体和单空格都必须在不使用html的情况下完成。

据我所知,使用多行制作JLabel只能使用html。。。你确定你指的是一辆汽车吗?如果是的,我不明白这个问题,那么你只需要在没有html的情况下进行。数到你想要显示的字符数。将JLabel文本设置为输入文本的子字符串。据我所知,使用多行制作JLabel只能使用html。。。你确定你指的是一辆汽车吗?如果是的,我不明白这个问题,那么你只需要在没有html的情况下进行。数到你想要显示的字符数。将JLabel文本设置为输入文本的子字符串。
。\u SCROLLBAR\u AS\u NEEDED
是JScrollPane的默认设置。无需添加这些参数。这也不起作用,因为OP说标签是固定高度的。如果出现滚动条,则无法看到文本。因此,如果需要使水平滚动条始终可见,但在这种情况下,组件将占用当前两倍的空间。
。\u scrollbar\u AS\u NEEDED
是JScrollPane的默认设置。无需添加这些参数。这也不起作用,因为OP说标签是固定高度的。如果出现滚动条,则无法看到文本。因此,如果您需要使水平滚动条始终可见,但在这种情况下,组件将占用当前两倍的空间。