1

ユーザーが情報のテーブルを検索できるようにして、検索を含む結果を動的に非表示/表示できるようにしようとしています。非表示部分がダウンしており、うまく機能していますが、検索条件が変更されると、テーブル アイテムを再び表示するのに問題があります。

これが私の隠しコードです:

searchField.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent arg0) {
                modified = true;
                for (int i = 0; i < table.getItems().length; i++) {
                    if (!(table.getItem(i).getText(2)
                            .contains(searchField.getText()))) {
                        table.getItem(i).dispose();
                    }

                }
                if ("".equals(searchField.getText())) {
                    modified = false;
                                    //where I would want to un-hide items
                }
            }
        });
4

3 に答える 3

0

TableItemを呼び出す前に、データをコレクションに保存する必要がありますdispose。次に、もう一度検索するときに、そのコレクションを確認し、一致するものが見つかった場合は、Table新しいを作成してに挿入し直しTableItemます。

于 2012-08-27T14:08:23.207 に答える
0

コードを見ると、を呼び出してを非表示にしようとしているようです。ウィジェットを破棄すると、それは永久になくなります。あなたはそれを取り戻すことはできません。itemdispose()

もう一度再表示する場合は、前に非表示にしたものと同じ内容の新しいアイテムを作成する必要があります。

于 2012-08-25T21:03:20.903 に答える
0

むしろ、ある種のテーブル モデルと JFace バインディングで実際に操作した方がよいのではないでしょうか。はい、処分は隠れていません。おそらくテーブルからアイテムを削除する必要があります。

于 2012-08-25T21:14:38.350 に答える