嘗試找到Centering Text on a Button with Offset的解決方案後,我現在正在執行一個自定義組件。 我們的目標是製作一個按鈕式組件,其一側有一個圖標,中間文本則填充按鈕的其餘部分。所有孩子的設置狀態與父母相同
該組件包含兩個標籤/按鈕來顯示圖標和文本。他們都有一個背景圖片,在CSS中定義。
的CSS看起來像這樣爲圖標,並用交換圖像作爲背景的文本文本
#button-icon-cancel{
-fx-font-family: "Arial";
-fx-padding: 0,0,0,0;
-fx-background-color: transparent;
-fx-font-size: 28px;
-fx-graphic: url('images/button/cancel.png');
}
#button-icon-cancel:pressed{
-fx-graphic: url('images/button/cancel-pressed.png');
}
的圖像由SETID()加載。目前,這兩個組件在傳遞到舞臺之前都會添加到Panel中。它們包含一個用於處理的OnClickEvent。
我們的實際問題
我怎樣才能做到這一點,如果單擊一個組件,另一種是獲取:從CSS壓制呢?
- 添加ClickEvent該小組正在做什麼(無論是標籤/按鈕就點擊)
- 添加他們都到HBox中,添加事件和hbox的工作,在這方面,我可以點擊組件和事件被觸發,但是:按下的狀態僅適用於您單擊的組件。
是否有可能給所有孩子的通知,他們應該表現得像他們被按下?由於我們有很多小圖標,但只有一個文本背景,因此在整個事物上放置一個Label會造成很多不必要的浪費圖像空間。如果不是所有的css一次被改變,這也會導致改變字體顏色的問題(由於標籤沒有注意到按鈕被按下,帶有.setMouseTransparent(true)
的標籤按鈕解決方案不會改變文本標籤的字體顏色)