2016-01-10 35 views
2

我正在使用JavaFX應用程序,我把多邊形成窗格並定義形狀(一個用於下面的例子)作爲點擊形狀框不是JavaFX的正確尺寸轉換多邊形

shape.getPoints().addAll(new Double[] { ... points ... }); 
shape.setTranslateX(...); 
shape.setTranslateY(...); 

setOnMousePressed(new EventHandler<MouseEvent>() { 
    @Override 
    public void handle(MouseEvent mouseEvent) { 
     System.out.println(hex.getResource().toString()); 
     hex.pressed(); 
    } 
}); 

然後我將形狀添加到我的窗格

pane.getChildren().addAll(shape); 

但是,當我點擊形狀時,看起來點擊區域不僅覆蓋形狀。它覆蓋了其他點擊區域,所以我無法點擊某些形狀,而且我不小心點擊了其他點。但形狀本身處於正確的位置,看起來很好。他們並沒有在身體上互相覆蓋。請讓我知道我將如何修復點擊區域。

另外,我不能使用其他佈局類,因爲我的形狀需要明確地放在一個位置,而不僅僅是在網格中或彼此相鄰。

+0

不確定,但也許你正在尋找'shape.setPickOnBounds(false);'。如果你可以創建一個簡單的[MCVE],它可能會有所幫助。 –

+0

'hex'是什麼,你爲什麼設置事件處理程序不在形狀上? – hotzst

回答

0

您正在查找的是剪裁。

繼續並將其添加到您的代碼,並應該解決您的問題。

pane.setClip(shape); 

至於你的第二個問題,我不確定你在問什麼。