scala.swing 等效框

0__*_*0__ 3 swing scala

scala.swing.BoxPanel,但似乎错过了点,因为没有等同javax.swing.Box工厂方法createHorizontalStrutcreateHorizontalGluecreateVerticalStrut,和createVerticalGlue。此外,这些方法返回 的实例,java.awt.Component因此不能提交给scala.swing.Component.wrap

是否有任何简单的解决方法来创建间距和胶水scala.swing.BoxPanel?如果没有,是否有任何现有的开源库包装了 的功能javax.swing.Box

Rog*_*ach 5

我一直对胶水和支柱使用以下内容(您可以在 REPL 中运行它以进行测试):

import swing._
import Swing._ // object with many handy functions and implicits

val panel = new BoxPanel(Orientation.Vertical) {
  contents += new Label("header")
  contents += VStrut(10)
  contents += new Label("aoeu")
  contents += VGlue
  contents += new Label("footer")
}

new Frame { contents = panel; visible = true }
Run Code Online (Sandbox Code Playgroud)

也有 HGlue 和 HStrut 的方法。