コンストラクタで呼び出していますRowFilter.regexFilter(filterTF.getText(), 0);。filterTF からテキストUserPage_Admin()を読み取る方法。次のように、テキストの送信 (クリック) 時に呼び出される に割り当てられたアクション イベント リスナーから呼び出す必要があると思います。JButton
submitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = filterText.getText();
if (text.length() == 0) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter(text, 0));
}
}
});
ユーザー キー タイプ イベントでフィルタリングを使用する場合は、入力フィルター文字列を取得するテキスト フィールドにキー リスナーを追加します。
filterTxtFeild.addKeyListener(new KeyAdapter() {
public void keykeyReleased(KeyEvent evt) {
// on each key type event filter.
// put your filter code as submit button
}
});
ただし、以下のコメントで示唆されているように、Swing テキスト コンポーネントを操作するには、Document.addDocumentListener(DocumentListener). Swing テキスト コンポーネントは、Documentを使用してそのコンテンツを表します。ドキュメント イベントは、ドキュメントの内容が何らかの形で変更されたときに発生します。ドキュメント リスナーを次のように追加します。
filterTxtFeild.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
// put your filter code here upon data insertion
}
@Override
public void removeUpdate(DocumentEvent e)
{
//put your filter code here upon data removal
}
@Override
public void changedUpdate(DocumentEvent e) {}
});
編集: DocumentListener が望ましいのはなぜですか?
データ ソースでの入力の検証が必要な場合、KeyEventデータのフィルター処理中に使用すると、ユーザーのキーストロークが反映されず、入力イベントがデータ ソースによって処理される前にリスナーに送信されます。を入力したいときuser nameに、誰かが のようなテキストを入力したとします"$%^&"。このような無効な入力でKeyEventは、データ ソースに有効な変更が加えられていなくても、引き続き発生します。ただし、DocumentListenersデータ ソースに有効な変更が加えられた場合にのみ通知されます。データ入力コンポーネントは、validatorがリッスンできるイベントを生成します。テキスト コンポーネントの内容を 内から変更してはasynchronouslyなりません。その場合、プログラムはデッドロックする可能性があります。DocumentListener