2015-10-12 40 views
0

我正在使用自定義光標,它需要在屏幕中的某些組件上有所不同。如何在JavaFX Accordion標題欄中更改光標

當我設置的光標手風琴,它不影響標題頭,但效果各TitledPanes的身體。我甚至試圖爲每個TitledPane設置光標,但它不會影響標題標題。我正在使用以下方式更改光標。

ImageCursor cursor_title = new ImageCursor(cursorImg_title,cursorImg_title.getWidth()/2,cursorImg_title.getHeight()/2); 
accordionBody.setCursor(cursor_title); 

有沒有辦法改變一個JavaFX手風琴的標題欄中的光標?

更多....

我改變了標題欄的填充使用CSS如下。希望它與問題沒有任何關係。

.titled-pane > .title { 
    -fx-padding: 30; 
} 

回答

2

一個TitledPane被分爲兩個部分:

  • 標題
  • 內容

當設置在手風琴的光標,它代表它的每個內容標題欄,但離開標題。這是設計。

要強制應用程序更改標題上的光標,我們需要在每個節點上設置它。我們可以通過在手風琴上使用lookupAll()並通過他們使用的styleclass(即.title)來獲取所有節點。 確保在場景圖形可見後使用它。

accordion.lookupAll(".title").forEach(node -> node.setCursor(Cursor.CLOSED_HAND)); 

您可以使用自定義光標代替CLOSED_HAND

+0

你也可以直接在css文件中設置光標,這可能比搞亂查找更容易:'.accordian .title {-fx-cursor:...}' –

+2

@James_D'.accordian' ??沒有看到發生任何事情。你的意思是'.titled-pane>'是不是?但是當我使用'.titled-pane> .title {-fx-cursor:url(「myCursor.gif」)}'它給了我一個錯誤,因爲'java.lang.String不能轉換爲javafx.scene.Cursor' –