当前位置: 首页 > 面试题库 >

JTable使用TableCellRenderer更改单元格颜色

魏凡
2023-03-14
问题内容

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

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

谢谢,


问题答案:

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

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

在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
查找在“渲染和突出显示”下,这是一个带条纹的表格和图案匹配。本质上,您将执行与模式突出显示器相同的操作,但使用自己的谓词。



 类似资料:
  • 问题内容: 我想制作一个可编辑的表,然后检查数据以确保其有效。我不确定如何仅更改一个单元格的颜色。我想要一个单元格,例如(0,0)并将前景颜色设置为红色。我已经阅读了SO和Oracle上有关自定义ColorRenderer的其他文章,但是我不知道如何使用它。 谢谢。 问题答案: 假设您要用其他颜色渲染的单元格代表一种状态(我将以“拒绝并批准”为例)。然后,我将在我的表模型中实现一个名为getSta

  • 问题内容: 我试图使自己熟悉JTables,TableModels,JTableHeaders,渲染器等。我试图制作一个简单的虚拟表(出于练习目的),看起来像这样: 我还希望B2单元格-并且只有该单元格-具有蓝色(Color.BLUE)背景-所有其他单元格都可以具有自动分配的Swing默认颜色。 我的代码在下面,并且基于我在本网站和整个互联网上发现的无数示例。但是我没有得到想要的结果。相反,我得到

  • 我有一个jtable保存账本文件记录并将它们发送出去。

  • 我正在使用Apache POI读取零件编号电子表格中的数据。我在我们的数据库中查找零件编号,如果我们有零件的计算机辅助设计图纸,我将零件编号单元格涂成绿色,如果没有,我将其涂成红色。处理完成后,将保存电子表格。我遇到的问题是那列中的每个细胞都是绿色的。我已经完成了代码,查找零件号的逻辑工作正常,确定单元格应该是什么颜色以及设置颜色和填充的逻辑似乎也工作正常。知道我做错了什么吗? 谢谢

  • 我想改变JTable的单元格背景颜色,想从MySQL数据库中获取数据。 我在MySQL中使用一个数据表,它有一个状态字段。如果状态为1,则单元格背景颜色应为红色;如果状态为0,则应更改为红色。

  • 这听起来可能有点奇怪,但解释我的问题的最好方法就是如标题所述。 我有一个JTable,它使用自定义Tablemodel,在这个Tablemodel我有不同的方法。 我需要一种方法,当我在Tablemodel中调用一个特定的方法时,转到它被添加到的表,并更改位置(X,Y)单元格的背景颜色。 我可以从Tablemodel访问JTable对象。 为了澄清这个问题,有一个使用特定Tablemodel的JT