Scala: кнопка в ячейке таблицы не "срабатывает" - PullRequest
1 голос
/ 25 сентября 2010

У меня есть небольшая проблема: я хочу иметь Buttons в некоторых клетках моего Table. В качестве компонента рендеринга я возвращаю Button со следующим кодом: (в этом примере показан специфичный для приложения и отладочный код, но вы получите изображение)

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

Теперь, когда я прокручиваю до одного из Buttons в Table, я вижу распечатки «Я печатаю, поэтому я есть» и вижу кнопки с текстом «xx». Но когда я нажимаю одну из кнопок, ничего не происходит, и я даже не вижу "огонь!" распечаток.

Это также не работает, когда я определяю Action в теле Buttons вместо конструктора.

В качестве дополнительной справочной информации: Я не блокирую таблицы Events или что-то еще. У меня есть только слушатели, настроенные в JTable

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

и только временно блокирует одно из моих собственных событий в подклассе Tables:

listenTo(this.selection)
reactions += {
  case e@TableRowsSelected(_,_,true) => if(!blockSelectionEvents) publish(PimpedTableSelectionEvent(this))
}

кто-нибудь из вас когда-либо сталкивался с такой же проблемой или имеет представление о том, что может пойти не так. После 2 часов безрезультатной отладки я был бы благодарен за ЛЮБОЙ намек.

1 Ответ

0 голосов
/ 27 сентября 2010

Думаю, я понял.Не знал, что мне нужно добавить TableCellEditor, чтобы ловить события.На самом деле пока не работает, но я уверен, что это так.

...