Я использую JDialog для отображения уведомлений в правом нижнем углу моего приложения. Я показываю до 4 уведомлений, и самое последнее отображается сверху. Уведомления отображаются в соответствии с содержимым с сервера, поэтому может быть только 1 уведомление или 3, максимум 4. Это приводит к изменению размера JDialog, а изменение размера приводит к изменению местоположения JDialog, чтобы всегда быть выровненным в правом нижнем углу. Изменение местоположения при каждом новом поступлении уведомления вызывает мерцание JDialog.
Ниже приведен код, который я вызываю каждый раз, когда приходит новое уведомление:
private void updateDialog()
{
Point p = frame.getLocationOnScreen();
p.x += frame.getWidth()-getWidth()-5;
p.y += frame.getHeight()-getHeight()-25;
setLocation(p);
pack();
repaint();
}
Была ли у кого-нибудь похожая проблема? Как вы это решили? Любые другие советы о том, что я должен попытаться сделать?