JTable使用TableCellRenderer更改单元格颜色

我在我的GUI应用程序中使用JTable作为网格来表示游戏的位置。 我希望表格的单元格表示对象的某个位置具有某种颜色,并且在某些动作上,要移动的对象(即颜色单元格在Grid / JTable中移动)。 我知道我可以通过创建一个扩展DefaultTableCellRenderer的类来改变单元格颜色,这是唯一的方法吗? 或者是否有更简单的方法来切换单元格颜色?对于这样的应用程序,JXTable是否比JTable更好?

编辑:我没有包括我需要某些单元格颜色动态更改的事实,即按钮单击,键盘点击等等,是否仍然可以使用任何TableCellRenderer ,以防我仍在使用JTable?

谢谢,

使用JTable,DefaultTableCellRenderer是最好的方法。

但是,如果使用JXTable,使用荧光笔和自定义谓词会更容易。 通常,Predicates用于根据单元格的内容进行着色,但您可以根据行/列和一些外部值轻松地对其进行着色。

请查看http://www.jarvana.com/jarvana/view/org/swinglabs/swingx-core/1.6.2/swingx-core-1.6.2-javadoc.jar!/org/jdesktop/swingx/JXTable.html在Rendering and Highlighting下,这是一个条纹表和模式匹配。 你基本上和模式荧光笔做同样的事情,但是使用自己的谓词。

作为替代方案,请考虑使用prepareRenderer() ,如@mKorbel所建议,并显示在表格行渲染一文中