спасибо: -)
Это не связано с JXFrame (может быть сделано с любым окном), просто временная шкала, привязанная к свойству непрозрачности окна.Эта временная шкала запускается, когда окно приложения закрывается, соответствующий код находится в DemoUtils
public static void fadeOutAndDispose(final Window window,
int fadeOutDuration) {
fadeOutAndEnd(window, fadeOutDuration, false);
}
public static void fadeOutAndExit(Window window, int fadeOutDuration) {
fadeOutAndEnd(window, fadeOutDuration, true);
}
private static void fadeOutAndEnd(final Window window, int fadeOutDuration,
final boolean exit) {
Timeline dispose = new Timeline(new WindowFader(window));
dispose.addPropertyToInterpolate("opacity", 1.0f,
0.0f);
dispose.addCallback(new UIThreadTimelineCallbackAdapter() {
@Override
public void onTimelineStateChanged(TimelineState oldState,
TimelineState newState, float durationFraction,
float timelinePosition) {
if (newState == TimelineState.DONE) {
if (exit) {
Runtime.getRuntime().exit(0);
} else {
window.dispose();
}
}
}
});
dispose.setDuration(fadeOutDuration);
dispose.play();
}
public static class WindowFader {
private Window window;
public WindowFader(Window window) {
this.window = window;
}
public void setOpacity(float opacity) {
AWTUtilitiesWrapper.setWindowOpacity(window, opacity);
}
}
Обратите внимание, что эффект затухания больше не будет работать для всех кадров в jdk7, так как поведениебыл изменен, чтобы воздействовать только на неокрашенные окна
Редактировать
Временная шкала (и callbackAdapter) - это классы в Trident, одном из проектов Кирилла, к сожалению, оставленном им, принятым заНесущественно (справка не нужна, извините) - но вы можете взять любой другой или вручную код таймера