在斯卡拉秋千的树

时间:2010-10-29 06:49:55

标签: swing scala jtree

我想在我的Scala swing应用程序中使用一个树,但该组件在API中不可用。

JTree的包装是否存在?

如果没有,你有任何建议吗?

由于

1 个答案:

答案 0 :(得分:9)

即使您可以在scala程序中直接使用Java JTree,如this thread所示,但是存在关于包含JTree的Scala包装器的争论。

  

以下常见用法繁琐,冗长,非类型安全,和/或需要使用不安全的null:

     
      
  • 创建由您自己的用户对象支持的自定义树模型 - Scala   Swing方式是在其后面有一个标准的类型安全Map
  •   
  • 事件 - 由树创建的大量事件 - TreeWillExpandListenersTreeSelection等 - 使用Reactor / Publisher PartialFunction模型可以使此代码更具可读性和简洁性
  •   
  • 可编辑组件 - 这是使用scala.swing中其他位置的隐式值完成的,也应该在这里。
  •   
  • 自定义渲染器 - 不记得Scala如何处理这些渲染器,但这在Java Swing中也总是很繁琐。
  •   
     

底线是,JTrees在Java中使用是一个巨大的痛苦,没有特别好的理由。对于Scala Swing用户来说,Scala包装器将是一个巨大的好处。

design is in progress制作的JTree wrapper proposal is available in this GitHub repokenbot (Ken Scambler)