即使您可以直接在scala程序中使用Java JTree,如此线程所示,但是存在关于包含JTree的Scala包装器的争论.
以下常见用法繁琐,冗长,非类型安全,和/或需要不安全的null用法:
- 创建一个由您自己的用户对象支持的自定义树模型 - Scala Swing方法是
Map在其后面有一个标准的类型安全- 事件-有树木创建的事件堆-
TreeWillExpandListeners,TreeSelection等等-使用堆/出版商PartialFunction模式将使这个代码更具可读性和简洁.- 可编辑的组件 - 这是使用scala.swing中其他位置的隐式值完成的,也应该在这里.
- 自定义渲染器 - 不记得Scala如何处理这些渲染器,但这在Java Swing中也总是很繁琐.
最重要的是,
JTrees在Java中使用是一个巨大的痛苦,没有特别好的理由.对于Scala Swing用户来说,Scala包装器将是一个巨大的福音.
一个设计正在进行中,并且JTree的包装建议,请在此GitHub库,通过由kenbot(肯Scambler) .