簡體   English   中英

如何刪除按鈕單擊JavaFX上的展開效果?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM