2010-10-29 40 views
7

我想在我的Scala swing應用程序中使用樹,但該組件在API中不可用。scala swing中的樹

是否存在JTree的包裝?

如果不是,你有任何建議嗎?

感謝

回答

9

即使您可以直接在斯卡拉程序使用Java JTree的,由this thread如圖所示,有一個關於包括JTree的Scala的包裝辯論。

以下常見的用法是繁瑣,冗長,非安全型,和/或需要不安全NULL用法:

  • 創建自定義樹模型,通過自己的用戶對象的支持 - 斯卡拉 搖擺的辦法是有一個標準的類型安全Map背後
  • 活動 - 有樹木創建的事件堆 - TreeWillExpandListenersTreeSelection,等等 - 使用堆/出版商PartialFunction模式將使這個代碼更具可讀性和簡潔。
  • 可編輯組件 - 這是通過scala.swing中其他位置的隱式值完成的,並且應該也在這裏。
  • 自定義渲染器 - 不記得Scala如何處理這些事情,但這在Java Swing中總是很煩瑣。

底線是,JTrees是一個巨大的痛苦,在Java中使用,沒有特別好的理由。一個Scala包裝器對於Scala Swing用戶來說是一個巨大的福音。

design is in progressJTree wrapper proposal is available in this GitHub repo,通過kenbot (Ken Scambler)製成。