【问题标题】:jTable grid lines for selected rowsjTable 选定行的网格线
【发布时间】:2009-08-15 16:39:55
【问题描述】:

我有一个 jTable 集,因此它是只读的,并且只能通过单行进行选择。

但是,当用户选择一行并绘制该行时,jTable 的列之间的垂直网格线被移除,导致单个水平颜色块,而不是每个单元格中的颜色块。

如何让选定的行显示相邻列中每个单元格之间的垂直线?

【问题讨论】:

标签: java jtable


【解决方案1】:

你确定myTable.setShowGrid(true), myTable.setShowVerticalLines(true) 已经被调用了吗?你的网格颜色是什么,和选择背景颜色一样吗?

更新:我使用以下简单的Jython 脚本创建了一个只读表:

from javax.swing import *
from java.awt import *
from javax.swing.table import DefaultTableModel, DefaultTableCellRenderer

class MyTableModel(DefaultTableModel):
    def isCellEditable(self, row, col):
        return False

class UnfocusableRenderer(DefaultTableCellRenderer):
    def getTableCellRendererComponent(self, table, value, isSelected, hasFocus, row, col):
        return DefaultTableCellRenderer.getTableCellRendererComponent(self, table, value, isSelected, False, row, col)

if __name__ == '__main__':
    frame = JFrame("Read-only JTable")
    frame.setSize(400, 150)
    frame.setLayout(BorderLayout())
    tableData = [
      ['', ''],
      ['', ''],
    ]
    colNames = ('Title 1','Title 2')
    dataModel = MyTableModel(tableData, colNames)
    table = JTable(dataModel)
    r = UnfocusableRenderer()
    for colindex in (0, 1):
        tc = table.columnModel.getColumn(colindex)
        tc.cellRenderer = r

    scrollPane = JScrollPane()
    scrollPane.setPreferredSize(Dimension(370,106))
    scrollPane.getViewport().setView(table)

    panel = JPanel()
    panel.add(scrollPane)
    panel.background = Color.blue.darker()

    frame.add(panel, BorderLayout.CENTER)
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
    frame.setVisible(True)

这是我选择一行时的截图:

由于这是显示网格线,这可能与您的渲染器、颜色或资源有关吗?

【讨论】:

  • 是的,setShowgrid 和 setShowVerticalLines 都是真的。没有这些,我根本看不到列之间的任何垂直线。只是选择的行没有绘制这些垂直线。我拥有的网格是白色背景,黑色线条(与标题行相反),突出显示行颜色为橙色。 (此处显示:algaia.co.uk/grid.jpg)我已经在我期待一条垂直线的地方盘旋了......
【解决方案2】:

您是否实现了自己的单元渲染器?

如果你确定你仍然在你的

中设置了一个边框
 public Component getTableCellRendererComponent(...)

方法

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 2012-02-18
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    相关资源
    最近更新 更多