这是应用程序的屏幕截图
行将根据搜索文本字段中写入的文本显示在表格中。现在我想根据第二张图像中显示的黄色标记该特定文本,我知道如何选择一行或特定单元格。但我不知道如何在表格中任何行的单元格内选择特定文本。
我猜你知道如何在 JTable 中搜索,所以我不会在这里粘贴它的代码。
您可以查看SwingX库。正如你所说的那样,它具有这种功能。您只需要将它添加到您的表中。这是你可以找到它的地方。试一试你一定会喜欢的。
基本前提是使用TableCellRenderer
提供您所需功能的自定义。
问题是如何实现它。
我会TableCellRenderer
基于 a创建一个JTextField
,删除它的边框并使其透明。这将允许您使用 提供的文本突出显示功能JTextCompoent
来突出显示部分文本,如此处所示。
下一个问题是知道要突出什么。有多种可能性。
您可以在表模型中提供一个方法,该方法可以返回应突出显示的当前文本。
我个人可能会使用JTable#putClientProperty
andJTable#getClientProperty
方法来播种搜索文本。
或者,您实际上可以直接向渲染器提供一个简单的模型,该模型具有返回当前搜索文本的方法。这实际上可能更有用,因为您可以将其链接到字段、构建过滤器和渲染器的方法,并允许它们简单地相互播种