Scala:Table Cell中的按钮不会“触发”动作

时间:2010-09-25 14:49:30

标签: scala scala-swing

我遇到了一个问题:我希望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 :(得分:0)

猜猜我明白了。不知道我必须添加TableCellEditor来捕捉事件。还没有真正奏效,但我确信就是这样。