我正在通過CSS挖掘自定義控件,而且我得到了很多。所以我可以通過例如完全自定義我的滾動條。將曲目的背景設置爲透明等。但我堅持ScrollBarSkin(通過ScenicViewer調查)。看起來這個皮膚有一個默認的背景顏色(漸變)和邊框,我不能修改。 所以我的問題是,我如何訪問TableCellSkin或ScrollBarSkin,通過CSS修改背景顏色和插圖?JavaFX 2.2:通過CSS修改皮膚樣式
編輯:我使用JDK7
EDIT2:我發現在caspian.css爲ScrollPaneSkin一些語法。我試過相同的滾動條和一個tablecell:
ScrollBarSkin>* {
-fx-base: transparent;
-fx-border-color: #00ff00;
-fx-background-color: #0000ff;
}
但沒有運氣。
基於jewelsea的回答找到解決方案(感謝隊友!)
我做了一個新的類擴展ScrollBarSkin,我重寫getSkinnable()。這看起來像這樣:
public class MyScrollBarSkin extends ScrollBarSkin{
public MyScrollBarSkin(ScrollBar scrollBar) {
super(scrollBar);
}
@Override
public Insets getInsets() {
// TODO Auto-generated method stub
return super.getInsets();
}
@Override
public ScrollBar getSkinnable() {
ScrollBar curr = super.getSkinnable();
curr.getSkin().getNode().setStyle("-fx-background-color: transparent;");
return curr;
}
}
在相應的CSS我指的是這個皮膚jewelsea提到。 Et瞧!
還剩下一個小問題:爲什麼我無法通過css直接訪問此組件?
thx! +1。爲我澄清事情。我想我必須忍受苦澀的私生活...... –