2010-10-29 12 views
7

Desidero utilizzare un albero nella mia applicazione swing Scala, ma il componente non è disponibile nell'API.Albero in scala altalena

Esiste un wrapper di JTree?

In caso contrario, avete qualche consiglio per farlo?

Grazie

risposta

9

Anche se è possibile utilizzare direttamente il JTree Java nel vostro programma di scala, come illustrato da this thread, c'è un dibattito su come includere un involucro Scala di un JTree.

i seguenti utilizzi comuni sono noioso, verboso, sicuro non-tipo, e/o richiedere l'utilizzo non sicuro nullo:

  • La creazione di un modello di albero personalizzato, supportato da propri oggetti di utente - Scala modo swing sarebbe quella di avere un typesafe standard di Map dietro essa
  • eventi - ci sono cumuli di eventi creati da alberi - TreeWillExpandListeners, TreeSelection, ecc - Uso del/editore modello di reattore PartialFunction renderebbe questo codice molto più leggibile e conciso.
  • Componenti modificabili - Questo viene fatto con valori impliciti altrove in scala.swing e dovrebbe essere anche qui.
  • Renderizzatori personalizzati - Non riesco a ricordare come Scala si occupa di questi, ma questo è sempre un po 'laborioso anche in Java Swing.

La linea di fondo è, JTrees sono un enorme problema da utilizzare in Java, per nessuna ragione particolarmente buona. Un involucro Scala sarebbe un enorme vantaggio per gli utenti di Scala Swing.

A design is in progress, e un JTree wrapper proposal is available in this GitHub repo, fatta da kenbot (Ken Scambler).