2010-10-29 11 views
7

Quiero utilizar un árbol en mi aplicación Scala swing, pero el componente no está disponible en la API.Tree in scala swing

¿Existe un contenedor de JTree?

Si no, ¿tiene algún consejo para hacerlo?

Gracias

Respuesta

9

Aunque se puede utilizar directamente el JTree de Java en su programa de Scala, como se ilustra en this thread, hay un debate sobre la inclusión de un envoltorio Scala de un JTree.

Los siguientes usos comunes son tediosos, prolijo, seguro no el tipo y/o requerir de utilización nula insegura:

  • La creación de un modelo de árbol personalizado, respaldado por sus propios objetos de usuario - la Scala manera oscilación sería tener un estándar de seguridad de tipos Map detrás de él
  • eventos - hay un montón de eventos creados por los árboles - TreeWillExpandListeners, TreeSelection, etc. - Uso de la/Editorial modelo de reactor PartialFunction haría que el código mucho más fácil de leer y conciso.
  • Componentes editables: esto se hace con valores implícitos en cualquier otro lugar en scala.swing, y debería estar aquí también.
  • Representadores personalizados: no recuerdo cómo Scala los trata, pero esto siempre es complicado en Java Swing.

En pocas palabras, JTrees son un dolor masivo para usar en Java, sin una razón particularmente buena. Un envoltorio de Scala sería una gran ayuda para los usuarios de Scala Swing.

A design is in progress, y una JTree wrapper proposal is available in this GitHub repo, hecho por kenbot (Ken Scambler).