2
我尝试了swingx框架(http://swingx.java.net/)的演示。当你关闭主窗口时,你会有很好的消退效果。我试图用JXFrame达到这个效果,但它只有正常的关闭效果。对JXFrame的SwingX淡入淡出效果?
任何人有想法?
我尝试了swingx框架(http://swingx.java.net/)的演示。当你关闭主窗口时,你会有很好的消退效果。我试图用JXFrame达到这个效果,但它只有正常的关闭效果。对JXFrame的SwingX淡入淡出效果?
任何人有想法?
感谢:-)
它不涉及到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)是三叉戟,基里尔的项目,不幸被他抛弃,接管没有实质的一个(没有引用方便,不好意思)班 - 但你可以采取任何其他或手写代码一个定时器
谢谢你,我试图在我的代码中实现,但错过了一些类,如Timeline和UIThreadTImelineCallbackAdapter ...有没有可能我错过了一个库? – Anthea