2

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

编辑:我没有包括我需要某些单元格颜色来动态更改的事实,即通过按钮点击、键盘点击......等等,TableCellRenderer如果我仍在使用 JTable,这仍然可能吗?

谢谢,

4

2 回答 2

4

作为替代方案,请考虑使用prepareRenderer()@mKorbel 建议并在文章Table Row Rendering中显示的使用。

于 2011-04-27T00:08:56.700 回答
3

使用 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在 Rendering and Highlighting 下,这是一个条纹表和模式匹配。您基本上会做与模式荧光笔相同的事情,但使用您自己的谓词。

于 2011-04-26T20:57:35.527 回答