ここにアプリケーションのスクリーンショットがあります
検索テキストフィールドに書かれたテキストに従って、テーブルに行が表示されます。次に、2番目の画像に示すように、その特定のテキストを黄色でマークしたいと思います。行または特定のセルを選択する方法を知っています。しかし、テーブル内の任意の行のセル内の特定のテキストを選択する方法がわかりません。
JTable で検索する方法を知っていると思いますので、ここではコードを貼り付けません。
SwingXライブラリを調べることができます。あなたがそれを事前定義したと言ったように、それはこの種の機能を持っています。テーブルに追加するだけです。これはあなたがそれを見つけることができる場所です。試してみてください。きっと気に入るはずです。
基本的な前提は、TableCellRenderer
必要な機能を提供するカスタムを使用することです。
問題は、それをどのように実装するかです。
TableCellRenderer
に基づいてを作成し、JTextField
境界線を削除して透明にします。これにより、 が提供するテキストの強調表示機能を使用して、ここJTextCompoent
に示すようにテキストの一部を強調表示できます。
次の問題は、何を強調するかを知ることです。いくつかの可能性があります。
強調表示する必要がある現在のテキストを返すことができるメソッドをテーブル モデルに提供できます。
個人的には、おそらくJTable#putClientProperty
andJTable#getClientProperty
メソッドを使用して検索テキストをシードします。
または、現在の検索テキストを返すメソッドを持つレンダラーに直接単純なモデルを実際に提供することもできます。これは、フィールド、フィルターを構築するメソッド、およびレンダラーにリンクして、それらを単純に相互にシードできるため、実際にはより便利です。