2017-03-17 64 views
0

我想製作一個「自定義形狀」,由於某種原因填充不顯示哪個即時通訊假設它沒有關閉。有人知道爲什麼路徑不會關閉JavaFX

這裏是我的代碼:

Path path = new Path(); 

    path.getElements().add(new MoveTo(0, 0)); 
    path.getElements().add(new LineTo(5, 0)); 

    path.getElements().add(new MoveTo(5, 0)); 
    path.getElements().add(new LineTo(5, 4)); 

    path.getElements().add(new MoveTo(5, 4)); 
    path.getElements().add(new LineTo(15, 4)); 

    path.getElements().add(new MoveTo(15, 4)); 
    path.getElements().add(new LineTo(15, 0)); 

    path.getElements().add(new MoveTo(15, 0)); 
    path.getElements().add(new LineTo(18, 0)); 

    path.getElements().add(new MoveTo(18, 0)); 
    path.getElements().add(new LineTo(18, 4)); 

    path.getElements().add(new MoveTo(18, 4)); 
    path.getElements().add(new LineTo(20, 4)); 

    path.getElements().add(new MoveTo(20, 4)); 
    path.getElements().add(new LineTo(20, 6)); 

    path.getElements().add(new MoveTo(20, 6)); 
    path.getElements().add(new LineTo(0, 6)); 

    path.getElements().add(new MoveTo(0, 6)); 
    path.getElements().add(new LineTo(0, 0)); 

    path.setFill(Color.BLUE); 
    path.relocate(250, 250); 

    root.getChildren().add(path); 
    root.setScaleX(10); 
    root.setScaleY(10); 

    stage.setScene(scene); 
    stage.show(); 

很欣賞的幫助!

回答

0

您不需要在LineTo之後的MoveTo到相同的位置。此外,您應該使用ClosePath而不是添加LineTo來關閉路徑:

path.getElements().addAll(new MoveTo(0, 0), 
          new LineTo(5, 0), 
          new LineTo(5, 4), 
          new LineTo(15, 4), 
          new LineTo(15, 0), 
          new LineTo(18, 0), 
          new LineTo(18, 4), 
          new LineTo(20, 4), 
          new LineTo(20, 6), 
          new LineTo(0, 6), 
          new ClosePath());