当行中的一个单元格获得焦点时,如何使整行有边框?

How can I make an entire row have a border when a cell in the row receives focus?

我有一个包含 4 列的 JTable。每列都有自己的自定义单元格渲染器。当一个单元格获得焦点时,它会在其周围出现一个边框。我怎样才能让整行都有边框,而不仅仅是一个单元格?

I don't want each cell to have a border since the sides of the cell would have a border.

边框不需要占据组件的所有边。阅读 How to Use Borders 上的 Swing 教程部分以获取更多信息。您可以使用 MatteBorder 并指定应绘制边框的哪一侧。

所以你有两个选择:

  1. 为您的 table
  2. 中的每一列数据实施自定义渲染器
  3. 覆盖 JTableprepareRenderer(...) 方法以在行级别设置边框,因此您不需要单独的渲染器。查看 Table Row Renderering 以获取执行此操作的工作示例。