Java 当一行中的单元格接收焦点时,如何使整行具有边框?

Java 当一行中的单元格接收焦点时,如何使整行具有边框?,java,swing,jtable,focus,Java,Swing,Jtable,Focus,我有一个包含4列的JTable。每列都有自己的自定义单元渲染器。当一个单元格接收到焦点时,它周围会有一个边框。如何使整行有边框而不是只有一个单元格 我不希望每个单元格都有边框,因为单元格的两侧都有边框 边界不需要占用组件的所有边。有关更多信息,请阅读上的Swing教程部分。您可以使用MatteBorder并指定应绘制边框的哪一侧 所以你有两个选择: 为表中的每列数据实现自定义呈现器 覆盖JTable的prepareRenderer(…)方法,在行级别设置边框,这样就不需要单独的渲染器。查看一个这

我有一个包含4列的
JTable
。每列都有自己的自定义单元渲染器。当一个单元格接收到焦点时,它周围会有一个边框。如何使整行有边框而不是只有一个单元格


我不希望每个单元格都有边框,因为单元格的两侧都有边框

边界不需要占用组件的所有边。有关更多信息,请阅读上的Swing教程部分。您可以使用
MatteBorder
并指定应绘制边框的哪一侧

所以你有两个选择:

  • 为表中的每列数据实现自定义呈现器
  • 覆盖
    JTable
    prepareRenderer(…)
    方法,在行级别设置边框,这样就不需要单独的渲染器。查看一个这样做的工作示例

  • 如果单元格渲染器是自定义的,那么您不能通过检查行来轻松完成此操作吗?我不希望每个单元格都有边框,因为单元格的两侧都有边框。当整行有焦点时,我希望它周围有一个边框。好的,我查看了你建议的网页。谢谢。如果我用1。或者2.,然后我需要逐个单元格绘制边界单元格(大多数单元格缺少边)。因此,在一个地方使用prepareRenderer将是我最好的选择。