Я написал приложение плоттера данных некоторое время назад, которое имеет функцию автозагрузки. Действие загрузки и перезагрузки вызывает всплывающее окно JDialog с кнопкой отмены. В режиме автозагрузки это происходит каждые несколько секунд, когда окно JDialog запрашивает фокус каждый раз.Как остановить JDialog от запроса фокуса каждый раз?
Я попробовал позвонить setFocusableWindowState(false)
на примере JDialog
, но это не имело никакого значения. Может быть, потому, что это JDialog
, а не какой-то другой подкласс Window
?
UPDATE: setFocusableWindowState(false)
действительно работает, я просто тупо запускал неправильный файл jar. Длинная история. Во всяком случае, я не удаляю вопрос, потому что, когда я сделал небольшое исследование, прежде чем опубликовать его, я увидел, что у нескольких других людей возникли проблемы с подобными проблемами. Это решение :)
'JDialog' является подклассом' Window'. Вы можете попробовать настроить, чтобы окно не отображалось в автоматическом режиме или не пыталось использовать 'JWindow', но вы потеряете границу окна – MadProgrammer
' setFocusableWindowState (false) ', где вы помещаете эту строку? –
@Sharpedge после создания экземпляра (на самом деле это подкласс JDialog), который устанавливает значки и добавляет в конструктор окно-слушатель. Это происходит до вызова 'setVisible()'. – biggvsdiccvs