2017-09-23 3 views
0

Je suis novice en matière de javafx et j'utilise FXML de Scene Builder de Gluon. J'essaie d'obtenir des coins arrondis sur la fenêtre de mon application. J'ai essayé de le faire manuellement dans ma classe principale.La manipulation de la bordure de la fenêtre Javafx ne fonctionne pas

public class Main extends Application { 
    private double x = 0; 
    private double y = 0; 

    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     Parent root = FXMLLoader.load(getClass().getResource("layout.fxml")); 

     // Here is my attempt 
     root.setStyle("-fx-background-radius: 10px;"); 

     root.setOnMousePressed(e -> { 
       x = e.getSceneX(); 
       y = e.getSceneY(); 
     }); 

     root.setOnMouseDragged(e -> { 
       primaryStage.setX(e.getScreenX() - x); 
       primaryStage.setY(e.getScreenY() - y); 
     }); 

     primaryStage.initStyle(StageStyle.TRANSPARENT); 
     primaryStage.setScene(new Scene(root, 500, 300)); 
     primaryStage.show(); 
    } 
} 

J'ai également essayé d'y parvenir dans le constructeur de la scène en entrant la même propriété ci-dessus dans le champ CSS.

+0

J'ai eu un problème récent avec les frontières de JavaFX. Dans mon cas, il y avait une propriété dans le CSS par défaut que je devais remplacer. Peut-être que les commentaires sur cette question aident: https://stackoverflow.com/questions/46355643/get-rid-of-duplicated-border-on-javafx-scene-control-textfield?noredirect=1#comment79687539_46355643 –

Répondre

0

Vous devez définir le remplissage de scène null ou Color.TRANSPARENT:

Scene scene = new Scene(root, 500, 300); 
scene.setFill(null); 
primaryStage.setScene(scene);