JTable使用TableCellRenderer改变单元格颜色



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

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

谢谢,

作为替代方案,可以考虑使用prepareRenderer(),正如@mKorbel所建议的,并在文章表行渲染中所示。

对于JTable, DefaultTableCellRenderer是最好的方法。

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

查看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下的渲染和突出显示,这是一个条纹表和模式匹配。本质上,您可以做与模式高亮显示相同的事情,但是使用您自己的谓词。

相关内容

  • 没有找到相关文章

最新更新