[英]How to remove the expand effect on button clicked JavaFX?
單擊JavaFX按鈕時如何刪除小擴展效果? 而且我怎么能讓它像菜單按鈕一樣工作(當我按下它以保持聚焦狀態時,直到我按下另一個“菜單”按鈕)。 有沒有辦法將節點分組到同一個焦點?
一個價格的三個問題;-)
單擊JavaFX按鈕時如何刪除小擴展效果?
當你點擊它有焦點的按鈕時,當它有焦點時,它被聚焦環包圍,這使它稍大。 此效果通過css觸發。
默認css位於JavaFX運行時安裝中的jfxrt.jar中的caspian.css中。 相關摘錄在這里:
.button {
-fx-skin: "com.sun.javafx.scene.control.skin.ButtonSkin";
-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;
-fx-background-radius: 5, 5, 4, 3;
...}
.button:focused {
-fx-color: -fx-focused-base;
-fx-background-color: -fx-focus-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
-fx-background-insets: -1.4, 0, 1, 2;
-fx-background-radius: 6.4, 5, 4, 3;
}
要刪除輕微的擴展效果,請創建自己的樣式表。 在樣式表中將其指定給場景,並將聚焦和未聚焦按鈕的背景插圖和半徑設置為相同的值。 這里是一個教程在JavaFX的CSS和不斷有用的JavaFX CSS 參考指南 。
如何讓它像菜單按鈕一樣工作(當我按下它以保持聚焦狀態時,直到我按下另一個“菜單”按鈕)。
我不太明白這個問題 - 這是按鈕的默認行為。 也許你正在混合焦點和手臂狀態,實際上想要一個ToggleButton ?
有沒有辦法將節點分組到同一個焦點?
目前還沒有內置到平台上。 您可以為布局窗格編寫自己的FocusModel類,該布局窗格會記住窗格中具有焦點的最后一個控件,並在窗格獲得焦點或類似內容時再次重新分配焦點。 這將是自定義代碼。 您需要使用的概念是節點的焦點屬性,節點requestFocus api(有時通過在Platform.runLater中執行延遲以確保您覆蓋默認焦點處理)以及(我認為)默認焦點順序取決於的事實根據父母的子女的順序。
如果您不喜歡默認按鈕,請設置自己喜歡的按鈕 。 否則用代碼或圖像解釋小擴展效果。
使用Menu和MenuItems制作菜單。
或者使用切換按鈕對按鈕進行分組並使其像菜單一樣運行。
通過說“保持聚焦狀態”我認為你的意思是“選擇/切換狀態”而不是集中注意力。 單擊后按鈕保持聚焦狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.