![](/img/trans.png)
[英]How can I stylize the text of a button or toggle button in JavaFX using CSS?
[英]How do I stylize a Text Shape in JavaFX using a CSS style sheet without assigning it a style-class?
我有一個相當簡單的JavaFX控件,試圖用CSS樣式表進行樣式化。 我的背景設置很好,但是由於控件本身的大小可能有所不同,並且我想用控件縮放文本,因此我有幾種必要的文本形狀。
我正在嘗試使用.text{/*CSS Code*/}
對CSS中的文本進行樣式化,但無法正常工作:
.text{
-fx-fill: #818181;
-fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 6, 0.0 , 0 , 2 );
}
在Scene Builder中打開FXML文件時,我必須先應用樣式類,然后再看到效果。
我不在乎,但我也想在懸停或單擊文本形狀時使用效果,顯然是使用訪問偽類的樣式類:hover不起作用,並且通過擴展,我將假定沒有其他偽類工作之一:
.text:hover{
-fx-fill: #818181;
}
這就是我剩下的:
root {
display: block
}
.root{
-fx-background-color: linear-gradient(
from 0% 0% to 100% 100%, #b478ff 0%, #9400d3 100%
);
}
我將根布局(網格窗格)樣式類設置為“ root”,並且可行(我可以看到背景漸變顏色很好)。
我喜歡CSS的想法,但似乎永遠無法使它起作用,這讓我發瘋。 我在這里做錯了什么? 要文本形狀沒有可訪問的CSS偽類? 甚至根本沒有上課? 我想念的是什么?
您已將-fx-fill設置為text和text:hover中相同的顏色。
對我來說,它起作用了,當我使用CSS時:標簽和按鈕的文本顯示了懸停效果(我將fx-fill更改為text:hover中的另一個值)。
示例代碼: http : //pastebin.com/GNDwz626
除非您使用特殊的CSS類,否則有時必須這樣做
您需要做的是閱讀 jfxrt.jar(位於jre \\ lib \\ ext中)中的modena.css ,並在您的jre路徑中搜索它。modena.css位於
/******************************************************* * * * Text COMMON * * * ******************************************************/ .text-input { /* ... */ } .text-input:focused { /* ... */ } /******************************************************* * * * TextArea * * * ******************************************************/ .text-area { /* ... */ } .text-area > .scroll-pane { /* ... */ } .text-area > .scroll-pane > .scroll-bar:horizontal { /* ... */ } .text-area > .scroll-pane > .scroll-bar:vertical { -/* ... */ } .text-area > .scroll-pane > .corner { /* ... */ } .text-area .content { /* ... */ } .text-area:focused .content { /* ... */ }
有一個名為Scenic View的軟件,您可以從fx Experience網站上獲取它。 您也可以使用該軟件查找有關控件的css類的信息。
這是因為文本是形狀。 因此其略有不同。
//將其放在您的CSS中
/* This sets the fill for the Text Shape */
Text {
-fx-fill: white;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.