#java #macos #swt #e4
#java #macos #swt #e4
Вопрос:
в моем приложении у меня есть разделительная панель, которая разделяет основной вид и подробный вид
ширина основного вида = 300 и ширина подробного просмотра = 300
- допустим, при запуске отображается только основной вид
- вы нажимаете на полноэкранную кнопку, которая переводит ваше приложение в полноэкранный режим
- при нажатии на кнопку или что-то в этом роде откроется подробное представление (правая часть)
- щелчок по выходу из полноэкранного режима
- размер моего приложения составляет 300, а не 600
если вы сначала откроете просмотр сведений, сделаете полноэкранный режим и выйдете из полноэкранного режима, ширина приложения составит 600
какой бы ни был размер приложения перед переходом в полноэкранный режим, при выходе из полноэкранного режима устанавливается та же ширина
я не могу программно установить ширину окна после выхода из полноэкранного режима
я пробовал window.setWidth()
— не работает
У кого-нибудь есть какие-либо предложения?
Комментарии:
1. Это полноэкранная кнопка только для Mac (справа от строки заголовка), которая перемещает приложение в отдельное «Пространство»?
2. да, это перемещается в отдельный «пробел»!!! (нажав правую верхнюю кнопку в строке заголовка)
3. я попытался изменить размер приложения в shell_1.addListener(SWT.Resize,new Listener(), это не работает
4. @greg-449 есть предложения?
Ответ №1:
Похоже, вам нужно отложить запуск вашего кода, чтобы установить размер окна, до тех пор, пока не будет запущен асинхронный код, поставленный в очередь WBWRender
классом e4.
Поскольку, похоже, нет подходящего события для использования, вы можете просто запланировать запуск UIJob чуть позже:
UIJob job = new UIJob("set size")
{
@Override
public IStatus runInUIThread(IProgressMonitor monitor)
{
window.setWidth(800);
return Status.OK_STATUS;
}
};
job.schedule(2000);
Две секунды кажутся мне самыми короткими, что работает для меня — все это немного странно!
Комментарии:
1. я сделал то же самое, это работает, но пользователь может видеть задержку при изменении размера, есть ли другой способ?