我正在為 Java 開(kāi)發(fā)一種新的外觀和感覺(jué);這種外觀導(dǎo)入了 Material 風(fēng)格。我曾使用 UIDefault 導(dǎo)入觀感內(nèi)部的更改,所以現(xiàn)在我必須卸載觀感,但此操作存在問(wèn)題。外觀和感覺(jué) con 沒(méi)有正確刪除,現(xiàn)在我已經(jīng)將 UIDefault 映射用于所有操作,我認(rèn)為這是一個(gè)錯(cuò)誤,因?yàn)槲业某A扛采w舊常量并且當(dāng)我去刪除我的外觀和感覺(jué)時(shí)。新的外觀和感覺(jué)不會(huì)覆蓋我的常數(shù)這就是我使用 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貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
這可能是您使用 L&F 的問(wèn)題。您放入的所有資源UIManager
(原語(yǔ)除外)都必須是接口的實(shí)例javax.swing.plaf.UIResource
。Swing 提供了一些預(yù)定義的類(lèi),例如、ColorUIResource
、等,您可以在代碼中使用它們。BorderUIResource
IconUIResource
為什么需要它?這個(gè)界面告訴下一個(gè) Look-n-Feel,當(dāng)它應(yīng)用它的設(shè)置時(shí),這個(gè)設(shè)置可以被改變。
代碼示例:
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)));
當(dāng)您的工廠以 UIResource 實(shí)例的形式提供資源時(shí),可能會(huì)更好。
添加回答
舉報(bào)
0/150
提交
取消