Swing Scala中的多行标签

Swing Scala中的多行标签,swing,scala,scala-swing,Swing,Scala,Scala Swing,简短的问题,希望是简单的解决方案: 我有自己的列表视图渲染器,没什么特别的,它只是连接了标签和图标。我的问题是,到目前为止,标签忽略了我的“\n”。我怎样才能改变这一点?我想用两行文字来说明我所介绍的信息 谢谢收听。使用html作为标签。如下所示:newjlabel(“第1行第2行”)scala>导入java.awt_ scala>import javax.swing_ scala>val frame=newjframe() scala>frame.setVisible(真) scala>fra

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

我有自己的
列表视图
渲染器,没什么特别的,它只是连接了
标签
图标
。我的问题是,到目前为止,标签忽略了我的“\n”。我怎样才能改变这一点?我想用两行文字来说明我所介绍的信息


谢谢收听。

使用html作为标签。如下所示:
newjlabel(“第1行
第2行”)

scala>导入java.awt_
scala>import javax.swing_
scala>val frame=newjframe()
scala>frame.setVisible(真)
scala>frame.setPreferredSize(新尺寸(400300))
scala>val l=new JLabel(“abc\nefg”)
scala>frame.getContentPane.add(l)
scala>frame.pack
scala>l.setText(“abc
def”)

使用\n不起作用,但abc
def
起作用。

如果是大小问题,请尝试以下方法:myLabel.setPreferredSize(新维度(200200));如果获取FontMetrics()并计算大小,则可以使其更复杂。不,这不是大小,有足够的空间-甚至可以吞下\n并在一行中显示两者。这里还有另一个选项:新的JLabel(“另一行”);人力资源经理没有。。。可能是因为我不能使用
JLabel
,它必须是Scala标签。但是感谢您的尝试。请注意,这个问题不是Scala特有的。它的工作方式与Java6中的工作方式相同,因此您可以使用任何有关Swing的资源。
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>")