0

ユーザーエントリに基づいてフィルタリングしたい Jtable があります。私はこのコードを書いています:

data_table = new JTable(model); // create data table

data_table.setModel(new DefaultTableModel(pin, colNames)); // fill jtable
model = new DefaultTableModel(pin, colNames); // create a table model

final TableRowSorter<TableModel> sorter;

sorter = new TableRowSorter<TableModel>(model);

data_table.setRowSorter(sorter);

クリックすると、次のコードがあります。

String text = filter_txtf.getText(); // i get the user entry from a text field
    if (text.length() == 0) {
     sorter.setRowFilter(null);
      //data_table.setRowSorter(sorter);  
    } else {
      try {
        sorter.setRowFilter(
            RowFilter.regexFilter(text));
        //data_table.setRowSorter(sorter);  
      } catch (PatternSyntaxException pse) {
        System.err.println("Bad regex pattern");
     }
   }

問題は、クリックしても何も起こらないことです。プログラムをデバッグすると、「アクション実行」が正常に呼び出されます。コードの何が問題になっていますか?

4

1 に答える 1

2

基本的なコードは合理的に見えますが、SSCCE. if/else ステートメントは必要ありません。常に行フィルターをリセットするだけです。

実際の例については、ソートとフィルタリングに関する Swing チュートリアルのセクションを参照してください。

于 2013-05-20T15:02:52.960 に答える