2017-09-23 58 views
0

我是javafx的新手,我使用的是來自Gluon的Scene Builder的FXML。Javafx窗口邊框操作不起作用

我想在我的應用程序的窗口上得到圓角。我曾嘗試在我的主類中手動執行此操作。

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(); 
    } 
} 

我也試圖通過在CSS字段中輸入上面的相同屬性來實現場景構建器。

+0

我已經受夠了JavaFX的邊界最近遇到的問題。就我而言,我默認的主題CSS中有一個特性,我應該重寫。也許關於這個問題的意見幫助:https://stackoverflow.com/questions/46355643/get-rid-of-duplicated-border-on-javafx-scene-control-textfield?noredirect=1#comment79687539_46355643 –

回答

0

您需要設置場景的填充爲空或Color.TRANSPARENT:

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