面板换行,并线的Java Swing破
-
19-08-2019 - |
题
如何实现一个能够支持自动换行和断行面板? 我的文字标签和换行符添加到该面板。 标签应该从左至右,包装到下一个“行”,如果流 需要。换行符会导致一个跳转到下一行。 我也想使面板垂直滚动。
该解决方案应该在爪哇5. SwingX可以使用工作。
澄清:将文字标签实际上JXHyperlink
s(从SwingX),
即面板包含可点击的标签。这是我不能使用的原因
JTextArea
。
解决方案 3
我发现JTextPane
,其中我已经由于某种原因之前忽视。这个类做什么,我需要的。
感谢您的帮助,虽然。 :)
其他提示
更新:我错过了超链接支持该请求。不知道该怎么做W / O使用EditorPane。
JTextArea中做你所描述什么。
JTextArea textArea = new JTextArea();
JScrollPanel sPane = new JScrollPane(textArea);
替代文字http://img187.imageshack.us/img187/3238/wraprn0 .PNG
此样本不从面板,即一个容器,但是从一个JLabel,即旨在显示内容。
您可以在您的内容中使用HTML和各个击破使用结果。 您与成分调整你的规则应该根据编程计算中断。
下面的代码:
import javax.swing.*;
import java.awt.*;
public class Wrap {
public static void main( String [] args ) {
JFrame frame = new JFrame("Wrap test");
String text = "<html>This<br>is<br>a<br>multiline<br>label</html>";
frame.add( new JLabel( text ) );
frame.pack();
frame.setVisible( true );
}
}
虽然这可能不是你在寻找的是一个解决方案,但是从你的要求,这似乎是一个自定义的LayoutManager
可能能够达到你所追求的。通过设计和分配一个自定义布局管理器,允许换行到的 Container
(例如 Panel
),它应该是可能有一个Panel
它允许换行。
在布放组件内的容器从 Java教程将提供关于如何布局管理工作的一般信息在Java中,特别是,在创建自定义布局管理器将提供关于如何使一个自定义布局管理器应用到Container
信息。
的 FlowLayout
行为(对于Panel
的默认布局管理器)似乎相当接近,你可能会后的行为。添加功能的换行符好像一角。
<强>建议:强>也许自定义布局管理器可具有由具有Component
表示换行,这可以通过使用Container
方法被添加到add()
添加换行符的能力
例如,具有在自定义布局管理器一类恒定Component
,例如(假设的)LineBreakLayout.LINE_BREAK
,并补充说的Container
可以告诉自定义布局管理移动到下一行。也许一个实现可以是这样的:
Panel p = new Panel(new LineBreakLayout());
p.add(new Label("First Line"));
p.add(LineBreakLayout.LINE_BREAK);
p.add(new Label("Second Line"));
上面的假设 LineBreakLayout
然后将呈现在一条线的第一Label
和第二Label
在第二行。