2014-10-06 238 views
2

我需要使繪製的矩形鼠標透明,才能看到桌面。 以下代碼繪製了我的矩形。我應該添加什麼來獲得? 感謝您的幫助使矩形透明

public void start(Stage primaryStage) { 
    Group group = new Group(); 

    Rectangle rect = new Rectangle(20,20,200,200); 

    rect.setArcHeight(15); 
    rect.setArcWidth(15); 

    rect.setStroke(Color.BLACK); 
    group.getChildren().add(rect); 

    Scene scene = new Scene(group, 300, 200); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 
+0

你能澄清嗎?如果你想看到桌面,你需要的窗口是透明的,但也許這不是你的意思? – 2014-10-06 20:09:09

回答

1

由於JavaFX的屏幕圖是在一個層次結構,以顯示你還需要使StageScene透明的桌面,並使用形狀「算術」:

@Override 
public void start(Stage stage) { 
    Group group = new Group(); 
    Rectangle rect = new Rectangle(0, 0, 350, 300); 
    Rectangle clip = new Rectangle(20, 20, 200, 200); 
    clip.setArcHeight(15); 
    clip.setArcWidth(15); 

    Shape shape = Shape.subtract(rect, clip); 

    shape.setFill(Color.GRAY); 
    group.getChildren().add(shape); 
    Scene scene = new Scene(group); 
    scene.setFill(Color.TRANSPARENT); 
    stage.initStyle(StageStyle.TRANSPARENT); 
    stage.setScene(scene); 
    stage.show(); 
} 

稍後,您可以添加可拖動功能到窗格/組。

+0

感謝您的幫助。可拖動的功能是我的下一個目標。我應該開一個新的問題,因爲我無法得到它嗎? – 2014-10-08 09:26:31

+0

@StéphaneGROSSMANN看到[這個答案](http://stackoverflow.com/a/22960073)的提示..如果它沒有幫助是的,你可以打開新的問題。 – 2014-10-08 10:39:09

+0

我把這個http://stackoverflow.com/questions/26254354/resizing-a-substraction-shape 但沒有答案:-(反正Tks – 2014-10-08 13:22:18

0

如果我理解正確,因爲我沒有得到「繪製的矩形鼠標透明」的這款鼠標的一部分 - 你的矩形應該是透明的?

您必須更改矩形的不透明度: rect.opacityProperty()。set(0.5);

+0

如果你的意思是這樣的話:rect.setStroke(new javafx.scene.paint.Color(0,0,0,0));把它變成黑色 – 2014-10-06 19:05:45

+0

隨着1,矩形也是黑色的:-( – 2014-10-06 19:12:56

+1

檢查編輯的答案。:)很遺憾,你不能只應用透明的顏色。你必須指定一個矩形的alpha通道(奇怪的,奇怪的...)。所以越接近0.0越透明1.0就是固體。 – 2014-10-06 19:26:38

1

如果你只是想在矩形的內部是透明的,那麼所有你需要的是

rect.setFill(Color.TRANSPARENT); 

,但我不能肯定,如果這是你的意思。