Я работаю над Java-приложением, которое позволяет пользователям «детализировать» элементы в диалоговом окне. Это означает появление одного модального диалога поверх другого и размещение их по центру экрана. Но к тому времени, когда я добираюсь до третьего диалогового окна, его отрисовка занимает целую вечность — иногда пару секунд.
Нарушающий код, похоже, заключается в центрировании экрана, что я делаю следующим образом:
Я комментирую эту строку, и диалоговые окна рисуются мгновенно. Это также мгновенно, если я установлю местоположение следующим образом:
Но если я выполню математические вычисления с размерами экрана и установлю для местоположения другие значения, я снова получу задержку.
Код: Выделить всё
Dimension d = getSize(); // Dialog size
// Use the above to calculate a location
setLocation(frame.screenCenter.x - (d.width / 2), frame.screenCenter.y - (d.height / 2));
Может ли кто-нибудь объяснить, что вызывает такое поведение? И есть ли способ обойти это?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... enter-in-j