0
我遇到了may(fx)clipse應用程序的問題。我想在應用程序啓動時顯示啓動畫面。我成功創建了實現StartupProgressTrackerService
的課程,並調用了我的stateReached
方法。不過,我自己有javafx
問題。我想用StageStyle.UNDECORATED
創建舞臺。但是,當我調用stage.show()
方法stage
不會立即呈現並且在主窗口創建之後出現。它工作正常,例如與StageStyle.UTILITY
。當我使用showAndWait()
方法時,它也會正確呈現,但它會阻止我的應用程序加載,直到我關閉舞臺。JavaFX UNDECORATED階段未顯示
這裏是我的代碼:
public class MyStartupProgressTrackerService implements StartupProgressTrackerService {
private Stage stage;
public MyStartupProgressTrackerService() {
}
@Override
public OSGiRV osgiApplicationLaunched(IApplicationContext applicationContext) {
applicationContext.applicationRunning();
return StartupProgressTrackerService.OSGiRV.CONTINUE;
}
@Override
public void stateReached(ProgressState state) {
if (DefaultProgressState.JAVAFX_INITIALIZED.equals(state)) {
stage = new Stage(StageStyle.UNDECORATED);
stage.initModality(Modality.WINDOW_MODAL);
stage.setAlwaysOnTop(true);
ImageView view = null;
try {
view = new ImageView(SPLASH_IMAGE);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BorderPane bp = new BorderPane();
bp.getChildren().add(view);
Scene scene = new Scene(bp, 400, 300);
stage.setScene(scene);
stage.show();
}
}
}