static JComponent tableWithSearcher(final JTable t) { final new JTextField input; onUpdate(input, new Runnable { L lastFiltered, lastOriginal; public void run() { S pat = trim(input.getText()); L> data = rawTableData(t); if (eq(lastFiltered, data)) data = lastOriginal; print("Searching " + n(l(data), "entry")); new L data2; for (Map map : data) if (anyValueContainsIgnoreCase(map, pat)) data2.add(map); print("Found " + n(l(data2), "entry")); lastFiltered = data2; lastOriginal = data; dataToTable(t, data2); } }); ret northAndCenter(withLabel("Search:", input), t); }