Java 在JTable中搜索时,如何通过编程从JTable中选择特定文本?

Java 在JTable中搜索时,如何通过编程从JTable中选择特定文本?,java,swing,jtable,Java,Swing,Jtable,下面是应用程序的屏幕截图 表格中将根据搜索文本字段中写入的文本显示行。 现在,我想按照第二幅图像中显示的黄色标记特定文本 我知道如何选择行或特定单元格。 但我不知道如何在表中任何行的单元格内选择特定文本 我猜你知道如何在JTable中搜索,所以我不会在这里粘贴它的代码。你可以查看SwingX库。正如你所说,它有这样的功能。您只需将其添加到表中即可。就是你能找到它的地方。试试看,你肯定会喜欢的。基本前提是使用定制的TableCellRenderer,它提供了你需要的功能 问题是如何实施它 我将基于

下面是应用程序的屏幕截图

表格中将根据搜索文本字段中写入的文本显示行。 现在,我想按照第二幅图像中显示的黄色标记特定文本 我知道如何选择行或特定单元格。 但我不知道如何在表中任何行的单元格内选择特定文本


我猜你知道如何在JTable中搜索,所以我不会在这里粘贴它的代码。

你可以查看SwingX库。正如你所说,它有这样的功能。您只需将其添加到表中即可。就是你能找到它的地方。试试看,你肯定会喜欢的。

基本前提是使用定制的TableCellRenderer,它提供了你需要的功能

问题是如何实施它

我将基于JTextField创建一个TableCellRenderer,删除它的边框并使其透明。这将允许您使用JTextComponent提供的文本突出显示功能来突出显示部分文本,如图所示

接下来的问题是知道要强调什么。有许多可能性

您可以在表模型中提供一个方法,该方法可以返回应高亮显示的当前文本

我个人可能会使用JTableputClientProperty和JTablegetClientProperty方法为搜索文本种子


或者,您实际上可以提供一个简单的模型,该模型直接提供给具有返回当前搜索文本的方法的渲染器。这实际上可能更有用,因为您可以将其链接到字段,即构建过滤器和渲染器的方法,并允许它们简单地彼此种子设定

@Deepak Odedara是的,SwingX基本上通过Highlighter/-Predicate支持视觉装饰-您的特定需求由我们提供,但从未在演示中实现:-工作正常,可能与RTOLSE有问题,@mKorbel我知道SwingX可以做行/列突出显示,但我不确定它是否可以选择性突出显示,虽然我不是在谈论SwingX,忘记了,只是关于Html和正则表达式,甚至@kleopatra也在附近SwingX Highlighter可以做。。。一切:-它们只需要实现,默认情况下不提供精确的文本匹配,但可用-[请参阅我对其他人的评论]answer@kleopatra你很清楚,我喜欢SwingX,我想通过Rob和Html的简单明了的方式来实现更高的层次