亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 UIDefault 為 swing 創建新的外觀

如何使用 UIDefault 為 swing 創建新的外觀

守候你守候我 2023-05-17 14:31:14
我正在為 Java 開發一種新的外觀和感覺;這種外觀導入了 Material 風格。我曾使用 UIDefault 導入觀感內部的更改,所以現在我必須卸載觀感,但此操作存在問題。外觀和感覺 con 沒有正確刪除,現在我已經將 UIDefault 映射用于所有操作,我認為這是一個錯誤,因為我的常量覆蓋舊常量并且當我去刪除我的外觀和感覺時。新的外觀和感覺不會覆蓋我的常數這就是我使用 UIDefault 的方式@Override    protected void initComponentDefaults(UIDefaults table) {        super.initComponentDefaults(table);        table.put("Button.highlight", MaterialColors.GRAY_400);        table.put("Button.opaque", false);        table.put("Button.border", BorderFactory.createEmptyBorder(7, 17, 7, 17));        table.put("Button.background", MaterialColors.GRAY_200);        table.put("Button.foreground", MaterialColors.COSMO_BLACK);        table.put("Button.disabledBackground", MaterialColors.COSMO_DARK_GRAY);        table.put("Button.disabledForeground", MaterialColors.BLACK);        table.put("Button[Default].background", MaterialColors.LIGHT_BLUE_500);        table.put("Button[Default].foreground", Color.WHITE);        table.put("Button.font", MaterialFontFactory.getInstance().getFont(MaterialFontFactory.BOLD));        //table.put("Button[Default].mouseHoverColor", MaterialColors.LIGHT_BLUE_200);        table.put("Button.mouseHoverColor", MaterialColors.GRAY_500);        table.put("Button.mouseHoverEnable", true);        table.put("Button.focusable", true);        table.put("Button[focus].color", MaterialColors.GRAY_900);        table.put("Button.disabledText", MaterialColors.GRAY_600);        table.put("CheckBox.font", MaterialFontFactory.getInstance().getFont(MaterialFontFactory.BOLD));        table.put("CheckBox.background", MaterialColors.WHITE);        table.put("CheckBox.foreground", MaterialColors.BLACK);        table.put("CheckBox.disabledText", MaterialColors.COSMO_STRONG_GRAY);        table.put("CheckBox.icon", new ImageIcon(MaterialImageFactory.getInstance().getImage(MaterialImageFactory.UNCHECKED_BLACK_BOX)));        table.put("CheckBox.selectedIcon", new ImageIcon(MaterialImageFactory.getInstance().getImage(MaterialImageFactory.CHECKED_BLACK_BOX)));    }
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

這可能是您使用 L&F 的問題。您放入的所有資源UIManager(原語除外)都必須是接口的實例javax.swing.plaf.UIResource。Swing 提供了一些預定義的類,例如、ColorUIResource、等,您可以在代碼中使用它們。BorderUIResourceIconUIResource

為什么需要它?這個界面告訴下一個 Look-n-Feel,當它應用它的設置時,這個設置可以被改變。

代碼示例:

table.put("OptionPane.warningDialog.titlePane.shadow",?new?ColorUIResource(MaterialColors.COSMO_STRONG_GRAY));
table.put("FormattedTextField.border",?new?BorderUIResource(BorderFactory.createEmptyBorder(3,?5,?2,?5)));
table.put("List.font",?new?FontUIResource(MaterialFontFactory.getInstance().getFont(MaterialFontFactory.MEDIUM)));

當您的工廠以 UIResource 實例的形式提供資源時,可能會更好。

查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號