// action: voidfunc(int row) static JTable tablePopupMenuItemsThreaded(final JTable table, O... params) { for (int i = 0; i+1 < l(params); i += 2) { fO action = params[i+1]; fO threadInfo = _threadInfo(); tablePopupMenuItem(table, str(params[i]), voidfunc(final int row) { _threadInheritInfo(threadInfo); thread-messagebox { callF(action, row); } }); } ret table; }