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