// action: voidfunc(S item) static void listPopupMenuItemsThreaded(final JList list, O... params) { for (int i = 0; i+1 < l(params); i++) { fO action = params[i+1]; listPopupMenuItem(list, str(params[i]), voidfunc(fS item) { thread-messagebox { callF(action, item); } }); } }