当我在其中搜索时,我如何以编程方式从JTable中选择特定文本?

时间:2013-07-25 06:21:02

标签: java swing jtable

以下是该应用程序的屏幕截图

This is how it look like when we run it

I want to make it like this

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

基本前提是使用提供您所需功能的自定义TableCellRenderer

问题是如何实现它。

我会根据TableCellRenderer创建JTextField,删除它的边框并使其透明。这样您就可以使用JTextCompoent提供的文字突出显示功能突出显示部分文字,如here所示。

接下来的问题是知道要突出显示的内容。有很多种可能性。

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

我个人可能会使用JTable#putClientPropertyJTable#getClientProperty方法来搜索搜索文本。

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