2010-09-25 14 views
1

J'ai un petit problème: Je veux avoir Buttons dans certaines des cellules de mon Table. En tant que composant le rendu, je retourne un Button avec le code suivant: (Theres l'application du code spécifique et le débogage dans cet exemple, mais vous aurez l'image)Scala: Bouton dans la cellule de tableau ne "feu" Action

class LivingTreeButton(lt:LivingTree[_], client:TableBehaviourClient) extends Button(Action("xx") { 
    println("fire!") 
    lt.expanded = !lt.expanded 
    client.refresh 
}){ 
    println("I print therefore I am") 
} 

maintenant, quand je défiler à l'un des Buttons dans le Table I voir les impressions "J'imprime donc je suis" et je vois les boutons avec le texte "xx". Mais quand j'appuie sur l'un des boutons il ne se passe rien et je ne vois même pas le "feu"! impressions.

Cela ne fonctionne pas non plus, lorsque je définis le Action dans le corps Buttons au lieu du constructeur. En tant qu'information de fond supplémentaire: Je ne bloque pas les tables Events ou quoi que ce soit. J'ai seulement aux auditeurs mis en place dans JTable

peer.getColumnModel().addColumnModelListener(behaviourWorker) 
peer.getTableHeader().addMouseListener(behaviourWorker) 

et seulement bloquer temporairement un de mes propres événements dans la sous-classe Tables:

listenTo(this.selection) 
reactions += { 
    case [email protected](_,_,true) => if(!blockSelectionEvents) publish(PimpedTableSelectionEvent(this)) 
} 

a l'un de vous jamais lutté avec le même problème ou a aucune idée de ce qui pourrait aller mal. Après 2 heures de débogage sans résultat, je serais reconnaissant pour tout indice.

Répondre

0

Devinez je l'ai eu. Je ne savais pas que je dois ajouter un TableCellEditor pour attraper les événements. Ça ne marche pas encore mais je suis sûr que c'est tout.