Ich habe ein Problem mit may e (fx) Clipse-Anwendung. Ich möchte beim Start der Anwendung einen Begrüßungsbildschirm anzeigen. Ich habe erfolgreich Klasse StartupProgressTrackerService
implementiert und habe meine stateReached
Methode aufgerufen. Aber ich habe Probleme mit javafx
selbst. Ich möchte eine Bühne mit StageStyle.UNDECORATED
erstellen. Jedoch, wenn ich stage.show()
Methode stage
aufrufen wird nicht sofort gerendert und erscheint kurz nachdem Hauptfenster erstellt wird. Es funktioniert gut, z.B. mit StageStyle.UTILITY
. Es rendert auch richtig, wenn ich Methode showAndWait()
verwende, aber es stoppt meine App vom Laden, bis ich die Bühne schließe.JavaFX UNDECORATED Bühne nicht angezeigt
Hier ist mein Code:
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();
}
}
}