-
Enhancement
-
Resolution: Unresolved
-
P5
-
7
-
Cause Known
-
x86
-
windows_xp
A DESCRIPTION OF THE REQUEST :
The first window to appear when starting up an application may be transient and not the main UI, but the SplashScreen will disappear, removing the place where progress on the applications initialization is typically conveyed.
In Java 6 a Dialog/JDialog would not automatically close the SplashScreen. This made sense to me, since a Dialog is rarely if ever the primary UI of an application. But according to the SplashScreen spec it was a bug and so it has been fixed in Java 7.
It could have been worked around, since there is an API to explicitly close the SplashScreen. But the new behavior can not be worked around if we want to show a dialog and keep the splash screen because there is no API that allows us to explicitly prevent the splash screen from automatically closing. The auto-close now feels like an ugly side-effect that takes away control from the developer.
JUSTIFICATION :
See http://forums.java.net/jive/thread.jspa?threadID=29878&tstart=0
Some applications may want to use a quick dialog during the startup phase of an application to determine how to continue with the start up. Since it could be some time before the primaryy UI is available after the user provides this information, it would be nice to have the SplashScreen remain so that typical progress information can continue to be painted to it.
Since Java does not yet support transparency in windows and the SplashScreen does, it is not possible for the developers to cleanly work around this issue by taking over the display of the splash screen.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Add a new API to SplashScreen such as
void setAutoClose(boolean x);
To allow the auto-closing behavior to be turned off. This would give the developer full control of the SplashScreen lifespan.
ACTUAL -
SplashScreens disappear as a side-effect of showing any other window. They can be closed earlier by the developer, but there is no way to have them close later.
The first window to appear when starting up an application may be transient and not the main UI, but the SplashScreen will disappear, removing the place where progress on the applications initialization is typically conveyed.
In Java 6 a Dialog/JDialog would not automatically close the SplashScreen. This made sense to me, since a Dialog is rarely if ever the primary UI of an application. But according to the SplashScreen spec it was a bug and so it has been fixed in Java 7.
It could have been worked around, since there is an API to explicitly close the SplashScreen. But the new behavior can not be worked around if we want to show a dialog and keep the splash screen because there is no API that allows us to explicitly prevent the splash screen from automatically closing. The auto-close now feels like an ugly side-effect that takes away control from the developer.
JUSTIFICATION :
See http://forums.java.net/jive/thread.jspa?threadID=29878&tstart=0
Some applications may want to use a quick dialog during the startup phase of an application to determine how to continue with the start up. Since it could be some time before the primaryy UI is available after the user provides this information, it would be nice to have the SplashScreen remain so that typical progress information can continue to be painted to it.
Since Java does not yet support transparency in windows and the SplashScreen does, it is not possible for the developers to cleanly work around this issue by taking over the display of the splash screen.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Add a new API to SplashScreen such as
void setAutoClose(boolean x);
To allow the auto-closing behavior to be turned off. This would give the developer full control of the SplashScreen lifespan.
ACTUAL -
SplashScreens disappear as a side-effect of showing any other window. They can be closed earlier by the developer, but there is no way to have them close later.
- relates to
-
JDK-6499013 Showing a Dialog does not close the SplashScreen
- Closed