当鼠标光标离开表格的边界时,我将鼠标侦听器连接到JTable来调用某些东西。但是,mouseExited()方法在鼠标光标离开表格的单个单元格时也会调用。我的代码中有一些奇怪的怪癖还是Swing中的一个错误?添加到JTable的MouseListener的奇怪行为
编辑:我没有提到我的表是一个JTable的子类,而不是一个标准的JTable
当鼠标光标离开表格的边界时,我将鼠标侦听器连接到JTable来调用某些东西。但是,mouseExited()方法在鼠标光标离开表格的单个单元格时也会调用。我的代码中有一些奇怪的怪癖还是Swing中的一个错误?添加到JTable的MouseListener的奇怪行为
编辑:我没有提到我的表是一个JTable的子类,而不是一个标准的JTable
添加鼠标监听器PL & F-重的部件是不是一个好主意。他们经常有分会破坏派对。鼠标事件与其他事件不同之处在于,它们在组件层次结构中冒泡,直到它们用鼠标侦听器击中组件(因此添加鼠标侦听器是一种侵入式操作)。 JTable
特别使用渲染器来标记每个单元以及编辑器组件。
(也子compnents如JTable
,或其他类如Thread
,通常是一个坏主意。)
如果鼠标侦听器不使用它,鼠标事件可以继续传播。还有你为什么不建议扩展'JTable'的具体原因?我可以理解为什么不是'Thread',而是'JTable'有很多东西被遗漏(例如搜索,层次结构)。您可以通过扩展表模型,列模型,标题等来添加许多功能,但是我遇到了必须扩展JTable本身的情况。 – 2010-09-28 03:47:59
监听器不必调用'consume()'来防止事件冒泡。只有听众的存在才能做到。 – 2010-09-28 11:22:09
正常的声音对我来说,如果你不检查event.getSource() == myTable
工作正常,我有一个标准的JTable。可能与你的班级有关。请张贴一些代码。 – lins314159 2010-09-27 00:35:21
适用于我...请发布一些代码 – Favonius 2010-09-27 07:39:11