Display.getActiveShell()
, yalnızca bir Kabuğun odaklandığı sürece etkin olduğunu düşünür. Şu anda başka bir uygulama varsa Display.getActiveShell()
null
döndürür.Aktif Kabuk SWT'ye alın, ancak Kabuk odakta olmasa bile,
SWT uygulamamın odakta olmasa bile, SWT uygulamasına odaklanan Shell'in hangisi olduğunu her zaman bana söyleyecek bir yönteme ihtiyacım var. Bazen almak rağmen
ben çabuk bir araya kod parçası kesmek ettik bir AssertionException
:
public static Shell getActiveShell() {
Display display = Display.getDefault();
Shell result = display.getActiveShell();
if (result == null) {
Shell[] shells = display.getShells();
for (Shell shell : shells) {
if (shell.getShells().length == 0) {
if (result != null)
throw new AssertionException();
result = shell;
}
}
}
return result;
}
kendi yöntemi yazma dışında bu sorunu yaklaşmak için herhangi bir standart yolu var mı?
_ "Ben her zaman SWT uygulama odakta olmadığında bile, benim SWT uygulamaya odakta Shell hangi söyle edecek bir yöntem gerekir." _ Ikinci kısım birinci çeliştiğini göstermektedir. Açıklayabilir misin? – Baz
Uygulamamın içeriğine odaklanan bir kabuğa sahip olmak, başka bir şey benim swt uygulamasına odaklanmaktır! –
Uygulamanın kendisinde odak yoksa, uygulamanızda odak yoktur. – Baz