2014-09-03 48 views
1

我爲了做突出我用鼠標偵聽的JavaFX的ImageView如何使用CSS懸停

public void doHighLight(){ 
    //System.out.println(xIcon.getImage()); 
    Image itmp= new Image("/gui/imges/icons/xSelected.png"); 
    xIcon.setImage(itmp); 
    //xIcon.setImage(new Image("./imges/icons/x.png")); 
    } 

public void doReset(){ 
    xIcon.setImage(new Image("/gui/imges/icons/x.png")); 
} 

取得了使用的ImageView

<ImageView fitHeight="25.0" fitWidth="25.0" onMouseClicked="#doExit" onMouseEntered="#doHighLight" onMouseExited="#doReset" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="1.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" fx:id="xIcon"> 
    <image> 
     <Image url="@imges/icons/x.png" /> 
    </image> 
</ImageView> 

的JavaFX一些定製buttoms正如你可以看到它不是最好的辦法,所以我嘗試了一些CSS,但它不工作。爲什麼?

#xIcon:HOVER { 
    -fx-image: url('@../imges/icons/xSelected.png'); 
} 

文件位置如下:

/app/GuiController.java 
/gui/style/main.css 
/gui/imges/icons/x.png 
/gui/imges/icons/xSelected.png 

回答

1

有一些原因沒有被工作:爲ImageView的設置id = "xIcon"

1)。 fx:idid是不同的屬性。
2)您不能使用@進行位置分辨率。在FXML文件中,但不在CSS(JavaFX)文件中。
3)似乎僞類不區分大小寫。所以使用:hover而不是:HOVER

欲瞭解更多信息,請參閱JavaFX的CSS參考指南。

+0

確實'不區分大小寫'故意掩蓋一些額外的含義嗎?否則「區分大小寫」似乎更直接。 – n611x007 2014-11-30 13:51:05

+0

@naxa好趕:)。這是在一個問題的背景下,這樣OP就試圖對僞類使用不區分大小寫的方法,所以答案是「不區分大小寫」。沒有額外的意義。 – 2014-11-30 17:55:23