📄 nimrodlookandfeel.java
字号:
* Ademas, no es mala idea que la decoracion de la ventana principal la ponga el sistema operativo * para que sea igual que todas (y si tiene transparencias, mejor) */ public boolean getSupportsWindowDecorations() { return false; } /* Esta mierda es debida a que quiero que esto funcione en la version 1.4 de Java y ademas, que el sitio adecuado para dejar la transparencia de los menus es el theme. Bueno, pues en la version 1.4 eso no se puede hacer, porque la funcion getCurrentTheme es privada de MetalLookAndFeel, asi que no hay manera de saber que tema se esta usando y por tanto no se puede recuperar la opacidad (ni ninugna otra caracteristica de los temas que no sea estandar). Asi que hay que replicar la funcion setCurrentTheme aqui, guardar el tema en una variable local y devolverlo despues en la funcion getOpacity */ public static void setCurrentTheme( MetalTheme t) { MetalLookAndFeel.setCurrentTheme( t); theme = t; NimRODUtils.rollColor = null; } protected void initClassDefaults( UIDefaults table) { super.initClassDefaults( table); table.put( "ButtonUI", "com.nilo.plaf.nimrod.NimRODButtonUI"); table.put( "ToggleButtonUI", "com.nilo.plaf.nimrod.NimRODToggleButtonUI"); table.put( "TextFieldUI", "com.nilo.plaf.nimrod.NimRODTextFieldUI"); table.put( "PasswordFieldUI", "com.nilo.plaf.nimrod.NimRODPasswordFieldUI"); table.put( "CheckBoxUI", "com.nilo.plaf.nimrod.NimRODCheckBoxUI"); table.put( "RadioButtonUI", "com.nilo.plaf.nimrod.NimRODRadioButtonUI"); table.put( "FormattedTextFieldUI", "com.nilo.plaf.nimrod.NimRODFormattedTextFieldUI"); table.put( "SliderUI", "com.nilo.plaf.nimrod.NimRODSliderUI"); table.put( "ListUI", "com.nilo.plaf.nimrod.NimRODListUI"); table.put( "ScrollBarUI", "com.nilo.plaf.nimrod.NimRODScrollBarUI"); table.put( "ToolBarUI", "com.nilo.plaf.nimrod.NimRODToolBarUI"); table.put( "ProgressBarUI", "com.nilo.plaf.nimrod.NimRODProgressBarUI"); table.put( "TabbedPaneUI", "com.nilo.plaf.nimrod.NimRODTabbedPaneUI"); table.put( "TableHeaderUI", "com.nilo.plaf.nimrod.NimRODTableHeaderUI"); table.put( "SplitPaneUI", "com.nilo.plaf.nimrod.NimRODSplitPaneUI"); table.put( "InternalFrameUI", "com.nilo.plaf.nimrod.NimRODInternalFrameUI"); table.put( "DesktopIconUI", "com.nilo.plaf.nimrod.NimRODDesktopIconUI"); // Todo esto, es para sacar un triste menu table.put( "MenuBarUI", "com.nilo.plaf.nimrod.NimRODMenuBarUI"); table.put( "MenuUI", "com.nilo.plaf.nimrod.NimRODMenuUI"); table.put( "PopupMenuUI", "com.nilo.plaf.nimrod.NimRODPopupMenuUI"); table.put( "PopupMenuSeparatorUI", "com.nilo.plaf.nimrod.NimRODPopupMenuSeparatorUI"); table.put( "MenuItemUI", "com.nilo.plaf.nimrod.NimRODMenuItemUI"); table.put( "CheckBoxMenuItemUI", "com.nilo.plaf.nimrod.NimRODCheckBoxMenuItemUI"); table.put( "RadioButtonMenuItemUI", "com.nilo.plaf.nimrod.NimRODRadioButtonMenuItemUI"); /* for( Enumeration en = table.keys(); en.hasMoreElements(); ) { System.out.println( "[" + (String)en.nextElement() + "]"); } */ } protected void initSystemColorDefaults( UIDefaults table) { super.initSystemColorDefaults( table); // Esto es para que todo lo que este seleccionado tenga el mismo color. table.put( "textHighlight", getMenuSelectedBackground()); // Y esto, para que se vean bien los textos inactivados. table.put( "textInactiveText", getInactiveSystemTextColor().darker()); /* for( Enumeration en = table.keys(); en.hasMoreElements(); ) { System.out.println( "[" + (String)en.nextElement() + "]"); } */ } private int tercio( int a, int b) { return b + 2*((a-b) / 3); } protected void initComponentDefaults( UIDefaults table) { super.initComponentDefaults( table); try { Color cFore = (Color)table.get( "MenuItem.disabledForeground"); Color cBack = (Color)table.get( "MenuItem.foreground"); Color col = new Color( tercio( cFore.getRed(), cBack.getRed()), tercio( cFore.getGreen(), cBack.getGreen()), tercio( cFore.getBlue(), cBack.getBlue()) ); table.put( "MenuItem.disabledForeground", col); table.put( "Label.disabledForeground", col); table.put( "CheckBoxMenuItem.disabledForeground", col); table.put( "Menu.disabledForeground", col); table.put( "RadioButtonMenuItem.disabledForeground", col); table.put( "ComboBox.disabledForeground", col); table.put( "Button.disabledText", col); table.put( "ToggleButton.disabledText", col); table.put( "CheckBox.disabledText", col); table.put( "RadioButton.disabledText", col); } catch ( Exception ex) { ex.printStackTrace(); } table.put( "MenuBar.border", NimRODBorders.getMenuBarBorder()); Font fontMenu = ((Font)table.get( "Menu.font")).deriveFont( Font.BOLD); //table.put( "Menu.font", fontMenu); table.put( "MenuItem.acceleratorFont", fontMenu); //table.put( "MenuItem.font", fontMenu); //table.put( "PopupMenu.font", fontMenu); table.put( "RadioButtonMenuItem.acceleratorFont", fontMenu); //table.put( "RadioButtonMenuItem.font", fontMenu); table.put( "CheckBoxMenuItem.acceleratorFont", fontMenu); //table.put( "CheckBoxMenuItem.font", fontMenu); // Para la sombra de los popupmenus table.put( "BorderPopupMenu.SombraBajIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/SombraMenuBajo.png")); table.put( "BorderPopupMenu.SombraDerIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/SombraMenuDer.png")); table.put( "BorderPopupMenu.SombraEsqIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/SombraMenuEsq.png")); table.put( "BorderPopupMenu.SombraUpIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/SombraMenuUp.png")); table.put( "BorderPopupMenu.SombraIzqIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/SombraMenuIzq.png")); // Para el JTree table.put( "Tree.collapsedIcon", NimRODIconFactory.getTreeCollapsedIcon()); table.put( "Tree.expandedIcon", NimRODIconFactory.getTreeExpandedIcon()); table.put( "Tree.closedIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/TreeDirCerrado.png")); table.put( "Tree.openIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/TreeDirAbierto.png")); table.put( "Tree.leafIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/TreeFicheroIcon.png")); table.put( "Tree.EstructuraCollapsedIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/TreeCollapsedIcon.png")); table.put( "Tree.EstructuraExpandedIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/TreeExpandedIcon.png")); // Los dialogos de ficheros table.put( "FileView.directoryIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogDirCerrado.png")); table.put( "FileView.fileIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogFicheroIcon.png")); table.put( "FileView.floppyDriveIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogFloppyIcon.png")); table.put( "FileView.hardDriveIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogHDIcon.png")); table.put( "FileChooser.newFolderIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogNewDir.png")); table.put( "FileChooser.homeFolderIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogHome.png")); table.put( "FileChooser.upFolderIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogDirParriba.png")); table.put( "FileChooser.detailsViewIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogDetails.png")); table.put( "FileChooser.listViewIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/DialogList.png")); // Para los muchos CheckBox y RadioButtons table.put( "CheckBoxMenuItem.checkIcon", NimRODIconFactory.getCheckBoxMenuItemIcon()); table.put( "RadioButtonMenuItem.checkIcon", NimRODIconFactory.getRadioButtonMenuItemIcon()); table.put( "Menu.checkIcon", NimRODIconFactory.getBandaMenuItemIcon()); table.put( "MenuItem.checkIcon", NimRODIconFactory.getBandaMenuItemIcon()); table.put( "MenuCheckBox.iconBase", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/MenuCheckBoxBase.png")); table.put( "MenuCheckBox.iconTick", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/MenuCheckBoxTick.png")); table.put( "MenuRadioButton.iconBase", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/MenuRadioBase.png")); table.put( "MenuRadioButton.iconTick", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/MenuRadioTick.png")); table.put( "CheckBox.iconBase", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/CheckBoxBase.png")); table.put( "CheckBox.iconTick", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/CheckBoxTick.png")); table.put( "RadioButton.iconBase", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/RadioButtonBase.png")); table.put( "RadioButton.iconTick", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/RadioButtonTick.png")); // Los iconillos de los dialogos table.put( "OptionPane.errorIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/Error.png")); table.put( "OptionPane.informationIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/Inform.png")); table.put( "OptionPane.warningIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/Warn.png")); table.put( "OptionPane.questionIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/Question.png")); // PAra el JSlider table.put( "Slider.horizontalThumbIcon", NimRODIconFactory.getSliderHorizontalIcon()); table.put( "Slider.verticalThumbIcon", NimRODIconFactory.getSliderVerticalIcon()); table.put( "Slider.horizontalThumbIconImage", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/HorizontalThumbIconImage.png")); table.put( "Slider.verticalThumbIconImage", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/VerticalThumbIconImage.png")); // Para las scrollbars table.put( "ScrollBar.horizontalThumbIconImage", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/HorizontalScrollIconImage.png")); table.put( "ScrollBar.verticalThumbIconImage", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/VerticalScrollIconImage.png")); // Margenes de los botones table.put( "Button.margin", new InsetsUIResource( 5,14, 5,14)); table.put( "ToggleButton.margin", new InsetsUIResource( 5,14, 5,14)); // Esto realmente no es necesario porque no se sobrecarga la clase ScrollPaneUI, pero si no se sobrecarga // el borde de ScrollPane, NetBeans 5.5 se queda tieso cuando cierras todas las pesta馻s del panel principal... table.put( "ScrollPane.border", NimRODBorders.getScrollPaneBorder()); // Para los InternalFrames y sus iconillos table.put( "Desktop.background", (Color)table.get( "MenuItem.background")); table.put( "InternalFrame.border", NimRODBorders.getInternalFrameBorder()); table.put( "InternalFrame.NimCloseIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameClose.png")); table.put( "InternalFrame.NimCloseIconRoll", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameCloseRoll.png")); table.put( "InternalFrame.NimCloseIconPush", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameClosePush.png")); table.put( "InternalFrame.NimMaxIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameMaximiza.png")); table.put( "InternalFrame.NimMaxIconRoll", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameMaximizaRoll.png")); table.put( "InternalFrame.NimMaxIconPush", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameMaximizaPush.png")); table.put( "InternalFrame.NimMinIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameMinimiza.png")); table.put( "InternalFrame.NimMinIconRoll", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameMinimizaRoll.png")); table.put( "InternalFrame.NimMinIconPush", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameMinimizaPush.png")); table.put( "InternalFrame.NimResizeIcon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameResize.png")); table.put( "InternalFrame.NimResizeIconRoll", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameResizeRoll.png")); table.put( "InternalFrame.NimResizeIconPush", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/FrameResizePush.png")); table.put( "InternalFrame.closeIcon", NimRODIconFactory.getFrameCloseIcon()); table.put( "InternalFrame.minimizeIcon", NimRODIconFactory.getFrameAltMaximizeIcon()); table.put( "InternalFrame.maximizeIcon", NimRODIconFactory.getFrameMaxIcon()); table.put( "InternalFrame.iconifyIcon", NimRODIconFactory.getFrameMinIcon()); table.put( "InternalFrame.icon", NimRODUtils.loadRes( "/com/nilo/plaf/nimrod/icons/Frame.png")); table.put( "NimRODInternalFrameIconLit.width", new Integer( 20)); table.put( "NimRODInternalFrameIconLit.height", new Integer( 20)); Font fontIcon = ((Font)table.get( "InternalFrame.titleFont")).deriveFont( Font.BOLD); table.put( "DesktopIcon.font", fontIcon); table.put( "NimRODDesktopIcon.width", new Integer( 80)); table.put( "NimRODDesktopIcon.height", new Integer( 60)); table.put( "NimRODDesktopIconBig.width", new Integer( 48)); table.put( "NimRODDesktopIconBig.height", new Integer( 48)); // Esto no se usa dentro del codigo de NimROD LaF, pero SWTSwing y el plugin EoS de Eclipse si lo usan table.put( "InternalFrame.activeTitleBackground", getMenuSelectedBackground()); table.put( "InternalFrame.activeTitleGradient", getMenuSelectedBackground().darker()); table.put( "InternalFrame.inactiveTitleBackground", getMenuBackground().brighter()); table.put( "InternalFrame.inactiveTitleGradient", getMenuBackground().darker()); //Esto es solo para saber que hay en la tabla /* for( Enumeration en = table.keys(); en.hasMoreElements(); ) { System.out.println( "[" + (String)en.nextElement() + "]"); } */ }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -