2

这是应用程序的屏幕截图

这是我们运行它时的样子

我想变成这样

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

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

4

2 回答 2

3

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

于 2013-07-25T06:28:39.323 回答
3

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

问题是如何实现它。

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

下一个问题是知道要突出什么。有多种可能性。

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

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

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

于 2013-07-25T06:33:16.890 回答