【问题标题】:JPanel to display large amount of textJPanel 显示大量文本
【发布时间】:2014-02-14 19:24:23
【问题描述】:

我目前正在寻找一种方法来显示我的程序的介绍。程序的每个部分都有自己的几行长的指令。每行末尾有\n\n 用于格式化。

如果字体大小可以自动调整到面板大小并且文本可以居中,那就太棒了。我尝试了TextLayout 并将文本添加到一个简单的JLabel,但这些都不能正确显示文本。

对如何完成这项任务有什么建议吗?

【问题讨论】:

  • 你为什么不用JTextAreaJScrollPane
  • 我的建议是学习一些动态 GUI 编程。
  • 我建议使用 JLabel 之类的东西,并可能使用 HTML 包装的文本,或者 JEditorPane,这将允许您使用 HTML 进行格式化。如果你真的下定了决心,你可以看看this example,它演示了一个JLabel,它将尝试根据可用空间调整它的字体......但它真的很乱......

标签: java swing text jpanel


【解决方案1】:

您还可以在 JLabel 文本中使用 HTML 格式。您需要做的就是用 和 包围文本,用 元素设置字体大小,然后用
替换每个 \n。

String formatted = text.replace("\n", "<br>");
formatted = "<html><font size='9'>" + formatted + "</font></html>";
JLabel label = new JLabel(formatted);

How to Use HTML in Swing Components

【讨论】:

    【解决方案2】:

    我同意@Josh M,您应该尝试将JTextArea 与JScrollPane 一起使用。或者,如果您不希望用户进行过多的 GUI 操作,您可以使用 newlines ('\n')tabs('\t') 等基本内容手动格式化文本。

    【讨论】:

      【解决方案3】:

      您可以像这样为您的JTextField 指定列数:

      JTextField textField = new JTextField("I Have a Big Text and I want show it now!", 40); 
       
      

      40 是列索引,这意味着文本现在默认有更多列用于显示数据。

      您可以这样做的另一种方法是使用 JTextArea

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多