Вот обзор параметров к эти map(function, *sequences)
функция:
function
название Вашей функции. sequences
любое количество последовательностей, которые обычно являются списками или кортежами. map
выполнит итерации по ним одновременно и даст текущие значения function
. Вот почему количество последовательностей должно равняться количеству параметров к Вашей функции. Это кажется, что Вы пытаетесь выполнить итерации для некоторых из function
, параметры, но сохранять других постоянными, и к сожалению map
не поддерживают это. Я нашел старое предложение добавить такую опцию к Python, но конструкция карты является столь чистой и известной, что я сомневаюсь, что что-то как этот будет когда-либо реализовываться.
Использование обходное решение как глобальные переменные или понимания списка, как другие предположили.
Чтобы найти активное окно (будь то фрейм или диалог) в приложении java swing, вы можете использовать следующий рекурсивный метод:
Window getSelectedWindow(Window[] windows) {
Window result = null;
for (int i = 0; i < windows.length; i++) {
Window window = windows[i];
if (window.isActive()) {
result = window;
} else {
Window[] ownedWindows = window.getOwnedWindows();
if (ownedWindows != null) {
result = getSelectedWindow(ownedWindows);
}
}
}
return result;
}
это из здесь Дополнительные сведения о состоянии окна здесь .
Я совершенно уверен, что вы обнаружите, что нет способа перечислить активные окна в чистой Java (я искал довольно усердно раньше), поэтому вам нужно будет написать код для платформ, на которые вы хотите ориентироваться.
В Mac OS X вы можете запустить AppleScript, используя "osascript".
В X11 можно использовать xwininfo.
В Windows, вероятно, можно запустить какой-нибудь VBScript (например, эта ссылка выглядит многообещающе).
Если вы используете SWT, вы можете найти некоторые недокументированные, непубличные методы в библиотеках SWT, поскольку SWT предоставляет обертки для многих API ОС (например, SWT на Cocoa имеет org.eclipse.swt.internal.cocoa.OS#objc_msgSend()
методы, которые можно использовать для доступа к ОС). Эквивалентные классы "OS" в Windows и X11 могут иметь API, которые вы можете использовать.
Я написал сценарий bash, который регистрирует текущий активное окно: http://www.whitelamp.com/public/active-window-logger.html Он использует исправленную версию wmctrl, но предоставляет подробную информацию о альтернативный (более медленный) метод с использованием xprop и xwininfo.
Ссылки на патч и исходный код wmctrl и скрипт могут быть найдено выше.