KeyEvents передаются только компонентам, которые являются фокусируемыми.
Прочитайте API для конструктора JWindow ().В нем говорится:
Создает окно без указанного владельца.Это окно не будет фокусируемым.
Прочитайте API для конструктора JWindow (Frame).В нем говорится:
Создает окно с указанным фреймом владельца.Если владелец имеет значение null, будет использоваться общий владелец, и это окно не будет фокусироваться.Кроме того, это окно не будет фокусируемым, если его владелец не будет отображаться на экране.
Поэтому в основном вам также необходимо создать видимый JFrame при использовании JWindow.
JFrame frame = new JFrame();
frame.setVisible( true );
JWindow window = new JWindow(frame);
Хак, который я видел на форумах, должен использовать:
JWindow window = new JWindow(new JFrame("is Showing")
{
public boolean isShowing()
{
return true;
}
});
Или лучше использовать недокрашенный JFrame, и вам не нужно об этом беспокоиться.