2016-12-30 9 views
-1

こんにちは皆さん、私はあなたの助けが必要です。 テーブルにフィルタを追加したいとします。ここにコードの一部があります。実際には、私のテーブルに行を追加した後、私は行を消すキーをテープでフィルタを使用して検索しようとします。このフィルタを動作させるにはどうすればよいですか? ありがとうjTextfieldKeyReleasedを使用したJavaフィルタ

private void filter1(String query)  
{ 
DefaultTableModel model=(DefaultTableModel) addtab.getModel(); 
TableRowSorter<DefaultTableModel> filter1=new TableRowSorter<>(model); 
addtab.setRowSorter(filter1); 
filter1.setRowFilter(RowFilter.regexFilter(query)); 
} 
private void searchKeyReleased(java.awt.event.KeyEvent evt) {         
    String query=search.getText().toLowerCase(); 
filter1(query); 
} 
+0

[mcve]を投稿するとすぐに役立ちます。 ''イメージで見ることができる ''、どのイメージ? – MasterBlaster

+0

SeEventフィールドにKeyEventListenerを登録しましたか? –

+0

@JochenBedersdorferいいえ、それを修正する方法を教えてください?私は 初心者です... –

答えて

-1

SwingはJavaドキュメントチームによって書かれた素晴らしいチュートリアルがあります。 それは非常に広範であり、ここでのKeyListenerを実装する方法を説明します。あなたの場合

https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

を、あなたの初期化コードで、

search.addKeyListener(new KeyAdapter() { 
    @Override public void keyReleased(KeyEvent e) { 
     // check if e is actually a character, read up about focus handling 
     searchKeyReleased(e); 
    } 
}); 

のようなものを追加します(これをコンパイルしていないが、あなたはアイデアを得ます)

+0

(1-)KeyListenerを使用しないでください。Swingにはより新しいAPIがあります。この場合、テキストフィールドの変更をリッスンするための 'DocumentListener'があります。たとえば、backspaceが使用されている、またはテキストがテキストフィールドに貼り付けられているなど、提案されたコードは機能しません。 – camickr

+0

true、DocumentListenerを忘れました。キープレスにも変更されます。 –

+0

btwよりフィルタリングが必要ですが、「より良い」APIの記述には同意しません;)AWTと比較して追加のAPIがあります。 Swingプログラミングについて学ぶなら、AWTクラスの対象になります –

0

実例はSorting and FilteringのSwingチュートリアルのセクションを読んでください。

例では、DocumentListenerを使用してテキストフィールドの変更をリッスンしてからフィルタを適用します。

関連する問題