Java JTable使用TableCellRenderer更改单元格颜色

Java JTable使用TableCellRenderer更改单元格颜色,java,swing,user-interface,jtable,cellrenderer,Java,Swing,User Interface,Jtable,Cellrenderer,我在GUI应用程序中使用JTable作为网格来表示游戏的位置。我希望表中表示对象特定位置的单元格具有特定颜色,并且在某些操作中,要移动的对象(即要在网格/JTable中移动的颜色单元格)。我知道我可以通过创建一个扩展DefaultTableCellRenderer的类来更改单元格颜色,这是唯一的方法吗?或者有没有一种更简单的方法来改变单元格颜色?对于这样的应用程序,JXTable是否比JTable更好 编辑:我没有包括我需要某些单元格颜色动态更改的事实,即通过按钮单击、键盘单击……等,如果我仍在

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

编辑:我没有包括我需要某些单元格颜色动态更改的事实,即通过按钮单击、键盘单击……等,如果我仍在使用JTable,任何
TableCellRenderer
是否仍然可以这样做


谢谢,

使用JTable,DefaultTableCellRenderer是最好的方法

但是,如果您使用JXTable,那么使用高亮显示和自定义谓词会容易得多。通常,谓词用于根据单元格的内容进行着色,但也可以根据行/列和一些外部值轻松地对其进行着色


在渲染和高亮显示下查看,这是一个条带化表和模式匹配。本质上,你做了与模式更亮的东西一样的事情,但是用你自己的谓词。

< P>作为一种选择,考虑使用,如@ MkBoell所建议的,并在文章中显示。< /P>我可以使用PuteleReNeRever()在一个按钮动作上改变一个单元格或一组单元格的颜色吗?是的,如果状态是行和列的纯函数。另请参见。如何动态执行此操作?如果我需要单击更改单元格颜色的按钮,或者让键盘单击更改单元格颜色,它的工作方式是否相同?谢谢