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