Я пытаюсь найти источник ошибки, связанной с управлением окнами и, возможно, конкретно с awt. Тем не менее, я практически не знаком с управлением окнами в целом или awt, поэтому я даже уверен, что ищу. Я надеюсь на какое-то общее руководство по терминологии или иным образом, которое могло бы помочь мне в правильном направлении.
В программе, над которой я работаю, пользователь может открывать окна, с которыми можно взаимодействовать (т. е. у них есть текстовые поля ввода, выпадающие меню и т. д.), и окна, с которыми нельзя взаимодействовать (т. е. они просто отображают диалог). Когда пользователь открывает неинтерактивное окно, он по-прежнему может использовать базовую программу. Однако при открытии интерактивного окна пользователю запрещается использовать базовую программу до тех пор, пока окно не будет закрыто. Кроме того, кажется, что интерактивные окна располагаются поверх неинтерактивных окон. То есть, если я открою неинтерактивное окно, а затем открою интерактивное окно, интерактивное окно разместится поверх неинтерактивного окна и не позволит пользователю использовать какие-либо виджеты в строке заголовка. . В этой программе такое поведение не всегда желательно.
Я предполагал, что это как-то связано с фокусировкой, но прочитал этот документ без особой удачи (возможно, я просто не знаю, что ищу). В частности, я заметил упоминание VetoableChangeLister, который, кажется, нигде не появляется в коде, с которым я работаю, а также метод requestFocusInWindow, который действительно появляется в коде, с которым я работаю, но не так, как мне кажется. мог видеть, что относится к моему описанию проблемы выше.
Будет ли вышеуказанная проблема связана с фокусировкой окна? Или я лаю не на то дерево? По крайней мере, хотя бы какую-то базовую терминологию, чтобы я мог, по крайней мере, разумно искать в Google.