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