2012-11-01 40 views
6

我想刪除聚焦時圍繞TableView的藍色邊框。
javafx-2,通過CSS刪除焦點突出顯示

enter image description here

我住進caspian.css,對於像Button和TextField大多數部件,確實是這樣的:

.table-view:focused { 
    -fx-background-color: -fx-focus-color,-fx-box-border,-fx-control-inner-background; 
    -fx-background-insets: -1.4, 0, 1; 
    -fx-background-radius: 1.4, 0, 0; 
    /*....*/ 
    -fx-padding: 1; /* 0.083333em; */ 
} 

我的問題是關於CSS,在最後。 我可以在我的樣式表中覆蓋此​​規範,而不是嘗試將顏色變爲透明嗎?

回答

9

是的,你可以。在樣式表與自己選擇的JavaFX的CSS屬性是這樣定義完全相同的CSS選擇器:

.table-view:focused { 
    -fx-background-color: red /* or transparent or other preferred color */,-fx-box-border,-fx-control-inner-background; 
    -fx-background-insets: -1.4, 0, 1; 
    -fx-background-radius: 1.4, 0, 0; 
    /*....*/ 
    -fx-padding: 1; /* 0.083333em; */ 
} 
2

因爲JavaFX的8有一個新的主題爲「摩德納」但同樣的老問題,我想打的更新Uluk Biy的答案並提供一些進一步的信息:

如果您想知道哪裏有些風格來自哪裏,您可以查看modena.css。您可以在jfxrt.jar中找到此css文件,該文件本身可以在您的JRE或JDK安裝目錄中找到。在Ubuntu 14.04 JDK主通常是在

/usr/lib/jvm/java-8-oracle/ 

和jfxrt.jar應該在這裏

/usr/lib/jvm/java-8-oracle/jre/lib/ext 

打開JAR文件,並在目錄/ COM /陽光/ JavaFX的查看/現場/控制/護膚/摩德納在那裏你會找到modena.css

從第406開始,你可以看到一個頭條這樣

/* ==== BUTTON LIKE THINGS ============================================== */ 

本節下的css指定了很多控件和容器的背景和邊框。你只需要搜索你的目標課程。我會告訴它的按鈕爲例: 對於下面的CSS指定

-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 
-fx-background-insets: 0 0 -1 0, 0, 1, 2; 

因爲他們不使用邊界某些原因按鈕類,而是使用多背景模擬般的外觀的邊框。所以如果你只想刪除邊框,你必須調整背景和插入屬性。

最後,如果你想刪除的聚焦效果,你不得不覆蓋這個默認的CSS

.button:focused, 
.toggle-button:focused, 
.radio-button:focused > .radio, 
.check-box:focused > .box, 
.menu-button:focused, 
.choice-box:focused, 
.color-picker.split-button:focused > .color-picker-label, 
.combo-box-base:focused, 
.slider:focused .thumb { 
    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color; 
    -fx-background-insets: -0.2, 1, 2, -1.4, 2.6; 
    -fx-background-radius: 3, 2, 1, 4, 1; 
} 

爲您的選擇與背景和插圖從上面的默認定義的控制。例如。對於按鈕:

.button:focused { 
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 
    -fx-background-insets: 0 0 -1 0, 0, 1, 2; 
} 
+0

我沒有看到你的答案之前掙扎了很多,他們確實不使用邊界屬性,但插圖和背景非常感謝您指出了這一點。 JavaFx絕對需要更好地記錄CSS的東西...... – rozaydin