JavaFX: finestra non decorata

2022-07-29 12:00:40

Sto tentando di inviare una notifica Toast per PC Windows. In questo momento sto usando una combinazione di Swing e JavaFX perché non ho trovato un modo per creare una finestra non decorata con FX. Preferirei di gran lunga usare solo JavaFX.

Allora, come posso realizzare una finestra non decorata?

Modifica: ho scoperto che puoi creare uno stage direttamente con new Stage(StageStyle.UNDECORATED).

Ora tutto ciò che devo sapere è come inizializzare il toolkit in modo da poter chiamare il mio metodo start(Stage stage) in MyApplication. (che extends Application)

Di solito chiamo Application.launch(MyApplication.class, null), tuttavia questo mi protegge dalla creazione di Stage e dall'inizializzazione di Toolkit .

Quindi come posso fare queste cose per permettermi di utilizzare direttamente start(new Stage(StageStyle.UNDECORATED))?

- Dorothy

Source
Risposta


31
  • Non capisco la tua motivazione per chiamare in via preliminare il metodo start() impostando una fase come non decorata, ma il seguente pezzo di codice dovrebbe fare ciò che vuoi ottenere.

    package decorationtest;
    
    import javafx.application.Application;
    import javafx.stage.StageStyle;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    
    public class DecorationTest extends Application {
    
        public static void main(String[] args) {
            Application.launch(args);
        }
    
        @Override
        public void start(Stage primaryStage) {
            primaryStage.initStyle(StageStyle.UNDECORATED);
    
            Group root = new Group();
            Scene scene = new Scene(root, 100, 100);
    
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    }