【问题标题】:Multi-lined Label in ScalaScala中的多行标签
【发布时间】:2011-06-20 05:44:19
【问题描述】:

简短的问题,希望是简单的解决方案:

我有自己的ListView 渲染器,没什么花哨的,它只是连接LabelIcon。我的问题是,到目前为止,标签忽略了我的“\n”。我该如何改变呢?我想用两行来表示我提供的信息。

感谢收听。

【问题讨论】:

  • 请注意,这个问题不是 Scala 特有的。它的工作方式与 Java 6 中的相同,因此您可以使用您能找到的任何有关 Swing 的资源。

标签: swing scala scala-swing


【解决方案1】:

使用 html 作为标签。像这样:new JLabel("<html>line 1<br>line 2</html>");

【讨论】:

  • 如果是尺寸问题,请尝试以下方法:myLabel.setPreferredSize(new Dimension(200, 200));如果你 getFontMetrics() 并计算大小,你可以让它更复杂。
  • 不,它不是大小,有足够的空间 - 它甚至足以吞下 \n 并在一行中显示。
  • 这里是另一个选项:new JLabel("
    一行
    另一行
    ");
  • Hrm 不...也许是因为我不能使用JLabel,它必须是 Scala 标签。但是感谢您的尝试。
【解决方案2】:
scala> import java.awt._
scala> import javax.swing._
scala> val frame = new JFrame()
scala> frame.setVisible(true)
scala> frame.setPreferredSize(new Dimension(400,300))
scala> val l = new JLabel("abc\nefg")
scala> frame.getContentPane.add(l)
scala> frame.pack
scala> l.setText("<html>abc<br>def</html>")

使用 \n 不起作用,但 &lt;html&gt;abc&lt;br&gt;def&lt;/html&gt; 可以。

【讨论】:

    猜你喜欢
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多