2015-06-03 53 views
1

我想在我的程序中有一個按鈕或可點擊的ImageView。點擊時,我想有一個邊框出現在圖像視圖的形狀。此圖像沒有背景,但我找不到指定邊框形狀的方法。例如:在javafx中設置沒有背景的imageview周圍的邊框

enter image description here

此圖像沒有背景,邊框必須是唯一的圍繞圖像所以沒有矩形或圓形。這可能嗎?

+0

您可以繪製2張圖像。 1與邊界和1沒有和交換他們在hoover或點擊 – varren

+0

這將是可能的,但將足夠光滑? – Squittron

回答

4

你可能更願意使用DropShadow效果顯示邊框:

@Override 
public void start(final Stage primaryStage) 
{ 
    DropShadow ds = new DropShadow(20, Color.AQUA); 
    ImageView imageView = new ImageView("http://vignette3.wikia.nocookie.net/forgeofempires/images/b/b8/Castel_del_Monte.png"); 

    imageView.setOnMouseClicked((MouseEvent event) -> 
    { 
     imageView.requestFocus(); 
    }); 

    imageView.focusedProperty().addListener((ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) -> 
    { 
     if (newValue) 
     { 
      imageView.setEffect(ds); 
     } 
     else 
     { 
      imageView.setEffect(null); 
     } 
    }); 

    final Scene scene = new Scene( 
      new VBox(imageView, 
      new Button("When you focus on me, the imageview looses its shadow effect")), 
      500, 200); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 

當ImageView的點擊,我們要求把重點放在它,這會觸發focusProperty變化監聽器和設置的效果,而當ImageView的鬆動其焦點(通過點擊TAB或點擊下面的按鈕)清除效果。

+0

謝謝,這正是我需要的。我不知道陰影。 – Squittron