Giter Club home page Giter Club logo

Comments (1)

Cyanss avatar Cyanss commented on May 27, 2024

Here is my temporary solution:

Step 1:

Use JFxFxmlView class replace zhe AbstractFxmlView class

public class JFxFxmlView extends AbstractFxmlView {
    private String value;

    private String[] css;

    private String bundle;

    private String encoding;

    private String title;

    private StageStyle stageStyle;

    private final FXMLView annotation = getFXMLAnnotation();

    public JFxFxmlView () {
        super();
        this.value = this.annotation.value();
        this.css = this.annotation.css();
        this.bundle = this.annotation.bundle();
        this.encoding = this.annotation.encoding();
        this.title = this.annotation.title();
        String style = this.annotation.stageStyle();
        this.stageStyle = StageStyle.valueOf(style.toUpperCase());
    }

    private FXMLView getFXMLAnnotation() {
        Class<? extends AbstractFxmlView> clazz = this.getClass();
        FXMLView annotation = clazz.getAnnotation(FXMLView.class);
        return annotation;
    }
...
...
// getter and setter

Step 2:

Use JFxToolViewManager class realization AbstractJavaFxApplicationSupport class

public class JFxToolViewManager extends AbstractJavaFxApplicationSupport implements InitializingBean {

    @Autowired
    private GxAccountService accountService;

    private static ConfigurableApplicationContext APPLICATION_CONTEXT;
    public static Scene SCENE;
    public static Stage PRIMARY_STAGE;
    public static JFxToolViewManager INSTANCE;

    @Override
    public void afterPropertiesSet() {
        INSTANCE = this;
    }

    @Override
    public void beforeInitialView(Stage stage, ConfigurableApplicationContext ctx) {
        super.beforeInitialView(stage, ctx);
        APPLICATION_CONTEXT = ctx;
        PRIMARY_STAGE = stage;
        //TODO something...

    }

    public static void show(Class<? extends JFxFxmlView> window, Modality mode) {
        JFxFxmlView view = APPLICATION_CONTEXT.getBean(window);
        PRIMARY_STAGE = new Stage();
        if (view.getView().getScene() != null) {
            SCENE = view.getView().getScene();
        } else {
            SCENE = new Scene(view.getView());
        }
        PRIMARY_STAGE.setScene(SCENE);
        PRIMARY_STAGE.initModality(mode);
        PRIMARY_STAGE.initOwner(getStage());
        PRIMARY_STAGE.setTitle(view.getTitle());
        PRIMARY_STAGE.initStyle(view.getStageStyle());
        PRIMARY_STAGE.showAndWait();
    }

    public static void show(Class<? extends JFxFxmlView> window) {
        JFxFxmlView view = APPLICATION_CONTEXT.getBean(window);
        if (GUIState.getScene() == null) {
            SCENE = new Scene(view.getView());
            GUIState.setScene(SCENE);
        }
        showView(window);
    }


    public static void launch(String[] args) {
        launch(JFxToolViewManager.class, JFxToolMainView.class, new JFxSplashView(), args);
    }

  ...
  ...

Step 3 :

Use JFxToolViewManager .show(param , param ) or JFxToolViewManager .show(param ) ,If you want to close zhe current

Stage, you can use JFxToolViewManager .PRIMARY_STAGE.close().

Attention, it's only temporary.

from springboot-javafx-support.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.