📄 metaliconfactory.java
字号:
return 16; } public int getIconHeight() { return 16; } } // End class InternalFrameDefaultMenuIcon // Internal Frame Maximize code private static class InternalFrameMaximizeIcon implements Icon, UIResource, Serializable { protected int iconSize = 16; public InternalFrameMaximizeIcon(int size) { iconSize = size; } public void paintIcon(Component c, Graphics g, int x, int y) { JButton parentButton = (JButton)c; ButtonModel buttonModel = parentButton.getModel(); Color backgroundColor = MetalLookAndFeel.getPrimaryControl(); Color internalBackgroundColor = MetalLookAndFeel.getPrimaryControl(); Color mainItemColor = MetalLookAndFeel.getPrimaryControlDarkShadow(); Color darkHighlightColor = MetalLookAndFeel.getBlack(); // ul = Upper Left and lr = Lower Right Color ulLightHighlightColor = MetalLookAndFeel.getWhite(); Color lrLightHighlightColor = MetalLookAndFeel.getWhite(); // if the internal frame is inactive if (parentButton.getClientProperty("paintActive") != Boolean.TRUE) { backgroundColor = MetalLookAndFeel.getControl(); internalBackgroundColor = backgroundColor; mainItemColor = MetalLookAndFeel.getControlDarkShadow(); // if inactive and pressed if (buttonModel.isPressed() && buttonModel.isArmed()) { internalBackgroundColor = MetalLookAndFeel.getControlShadow(); ulLightHighlightColor = internalBackgroundColor; mainItemColor = darkHighlightColor; } } // if the button is pressed and the mouse is over it else if (buttonModel.isPressed() && buttonModel.isArmed()) { internalBackgroundColor = MetalLookAndFeel.getPrimaryControlShadow(); ulLightHighlightColor = internalBackgroundColor; mainItemColor = darkHighlightColor; // darkHighlightColor is still "getBlack()" } g.translate(x, y); // fill background g.setColor(backgroundColor); g.fillRect(0,0, iconSize,iconSize); // BOX drawing // fill inside the box g.setColor(internalBackgroundColor); g.fillRect(3,7, iconSize-10,iconSize-10); // light highlight g.setColor(ulLightHighlightColor); g.drawRect(3,7, iconSize-10,iconSize-10); // up,left g.setColor(lrLightHighlightColor); g.drawRect(2,6, iconSize-7,iconSize-7); // low,right // dark highlight g.setColor(darkHighlightColor); g.drawRect(1,5, iconSize-7,iconSize-7); // outer g.drawRect(2,6, iconSize-9,iconSize-9); // inner // main box g.setColor(mainItemColor); g.drawRect(2,6, iconSize-8,iconSize-8); // g.drawRect(2,6, 8,8); // ARROW drawing // dark highlight g.setColor(darkHighlightColor); // down,left to up,right - inside box g.drawLine(3,iconSize-5, iconSize-9,7); // down,left to up,right - outside box g.drawLine(iconSize-6,4, iconSize-5,3); // outside edge of arrow head g.drawLine(iconSize-7,1, iconSize-7,2); // outside edge of arrow head g.drawLine(iconSize-6,1, iconSize-2,1); // light highlight g.setColor(ulLightHighlightColor); // down,left to up,right - inside box g.drawLine(5,iconSize-4, iconSize-8,9); g.setColor(lrLightHighlightColor); g.drawLine(iconSize-6,3, iconSize-4,5); // outside box g.drawLine(iconSize-4,5, iconSize-4,6); // one down from this g.drawLine(iconSize-2,7, iconSize-1,7); // outside edge arrow head g.drawLine(iconSize-1,2, iconSize-1,6); // outside edge arrow head // main part of arrow g.setColor(mainItemColor); g.drawLine(3,iconSize-4, iconSize-3,2); // top edge of staff g.drawLine(3,iconSize-3, iconSize-2,2); // bottom edge of staff g.drawLine(4,iconSize-3, 5,iconSize-3); // highlights inside of box g.drawLine(iconSize-7,8, iconSize-7,9); // highlights inside of box g.drawLine(iconSize-6,2, iconSize-4,2); // top of arrow head g.drawRect(iconSize-3,3, 1,3); // right of arrow head g.translate(-x, -y); } public int getIconWidth() { return iconSize; } public int getIconHeight() { return iconSize; } } // End class InternalFrameMaximizeIcon // Internal Frame Minimize code private static class InternalFrameMinimizeIcon implements Icon, UIResource, Serializable { int iconSize = 16; public InternalFrameMinimizeIcon(int size) { iconSize = size; } public void paintIcon(Component c, Graphics g, int x, int y) { JButton parentButton = (JButton)c; ButtonModel buttonModel = parentButton.getModel(); Color backgroundColor = MetalLookAndFeel.getPrimaryControl(); Color internalBackgroundColor = MetalLookAndFeel.getPrimaryControl(); Color mainItemColor = MetalLookAndFeel.getPrimaryControlDarkShadow(); Color darkHighlightColor = MetalLookAndFeel.getBlack(); // ul = Upper Left and lr = Lower Right Color ulLightHighlightColor = MetalLookAndFeel.getWhite(); Color lrLightHighlightColor = MetalLookAndFeel.getWhite(); // if the internal frame is inactive if (parentButton.getClientProperty("paintActive") != Boolean.TRUE) { backgroundColor = MetalLookAndFeel.getControl(); internalBackgroundColor = backgroundColor; mainItemColor = MetalLookAndFeel.getControlDarkShadow(); // if inactive and pressed if (buttonModel.isPressed() && buttonModel.isArmed()) { internalBackgroundColor = MetalLookAndFeel.getControlShadow(); ulLightHighlightColor = internalBackgroundColor; mainItemColor = darkHighlightColor; } } // if the button is pressed and the mouse is over it else if (buttonModel.isPressed() && buttonModel.isArmed()) { internalBackgroundColor = MetalLookAndFeel.getPrimaryControlShadow(); ulLightHighlightColor = internalBackgroundColor; mainItemColor = darkHighlightColor; // darkHighlightColor is still "getBlack()" } g.translate(x, y); // fill background g.setColor(backgroundColor); g.fillRect(0,0, iconSize,iconSize); // BOX drawing // fill inside the box g.setColor(internalBackgroundColor); g.fillRect(4,11, iconSize-13,iconSize-13); // light highlight g.setColor(lrLightHighlightColor); g.drawRect(2,10, iconSize-10,iconSize-11); // low,right g.setColor(ulLightHighlightColor); g.drawRect(3,10, iconSize-12,iconSize-12); // up,left // dark highlight g.setColor(darkHighlightColor); g.drawRect(1,8, iconSize-10,iconSize-10); // outer g.drawRect(2,9, iconSize-12,iconSize-12); // inner // main box g.setColor(mainItemColor); g.drawRect(2,9, iconSize-11,iconSize-11); g.drawLine(iconSize-10,10, iconSize-10,10); // up right highlight g.drawLine(3,iconSize-3, 3,iconSize-3); // low left highlight // ARROW // do the shaft first g.setColor(mainItemColor); g.fillRect(iconSize-7,3, 3,5); // do a big block g.drawLine(iconSize-6,5, iconSize-3,2); // top shaft g.drawLine(iconSize-6,6, iconSize-2,2); // bottom shaft g.drawLine(iconSize-6,7, iconSize-3,7); // bottom arrow head // draw the dark highlight g.setColor(darkHighlightColor); g.drawLine(iconSize-8,2, iconSize-7,2); // top of arrowhead g.drawLine(iconSize-8,3, iconSize-8,7); // left of arrowhead g.drawLine(iconSize-6,4, iconSize-3,1); // top of shaft g.drawLine(iconSize-4,6, iconSize-3,6); // top,right of arrowhead // draw the light highlight g.setColor(lrLightHighlightColor); g.drawLine(iconSize-6,3, iconSize-6,3); // top g.drawLine(iconSize-4,5, iconSize-2,3); // under shaft g.drawLine(iconSize-7,8, iconSize-3,8); // under arrowhead g.drawLine(iconSize-2,8, iconSize-2,7); // right of arrowhead g.translate(-x, -y); } public int getIconWidth() { return iconSize; } public int getIconHeight() { return iconSize; } } // End class InternalFrameMinimizeIcon private static class CheckBoxIcon implements Icon, UIResource, Serializable { protected int getControlSize() { return 13; } private void paintOceanIcon(Component c, Graphics g, int x, int y) { ButtonModel model = ((JCheckBox)c).getModel(); g.translate(x, y); int w = getIconWidth(); int h = getIconHeight(); if ( model.isEnabled() ) { if (model.isPressed() && model.isArmed()) { g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(0, 0, w, h); g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.fillRect(0, 0, w, 2); g.fillRect(0, 2, 2, h - 2); g.fillRect(w - 1, 1, 1, h - 1); g.fillRect(1, h - 1, w - 2, 1); } else if (model.isRollover()) { MetalUtils.drawGradient(c, g, "CheckBox.gradient", 0, 0, w, h, true); g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w - 1, h - 1); g.setColor(MetalLookAndFeel.getPrimaryControl()); g.drawRect(1, 1, w - 3, h - 3); g.drawRect(2, 2, w - 5, h - 5); } else { MetalUtils.drawGradient(c, g, "CheckBox.gradient", 0, 0, w, h, true); g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w - 1, h - 1); } g.setColor( MetalLookAndFeel.getControlInfo() ); } else { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w - 1, h - 1); } g.translate(-x, -y); if (model.isSelected()) { drawCheck(c,g,x,y); } } public void paintIcon(Component c, Graphics g, int x, int y) { if (MetalLookAndFeel.usingOcean()) { paintOceanIcon(c, g, x, y); return; } ButtonModel model = ((JCheckBox)c).getModel(); int controlSize = getControlSize(); if ( model.isEnabled() ) { if (model.isPressed() && model.isArmed()) { g.setColor( MetalLookAndFeel.getControlShadow() ); g.fillRect( x, y, controlSize-1, controlSize-1); MetalUtils.drawPressed3DBorder(g, x, y, controlSize, controlSize); } else { MetalUtils.drawFlush3DBorder(g, x, y, controlSize, controlSize); } g.setColor(c.getForeground()); } else { g.setColor( MetalLookAndFeel.getControlShadow() ); g.drawRect( x, y, controlSize-2, controlSize-2); } if (model.isSelected()) { drawCheck(c,g,x,y); } } protected void drawCheck(Component c, Graphics g, int x, int y) { int controlSize = getControlSize(); g.fillRect( x+3, y+5, 2, controlSize-8 ); g.drawLine( x+(controlSize-4), y+3, x+5, y+(controlSize-6) ); g.drawLine( x+(controlSize-4), y+4, x+5, y+(controlSize-5) ); } public int getIconWidth() { return getControlSize(); } public int getIconHeight() { return getControlSize(); } } // End class CheckBoxIcon // Radio button code private static class RadioButtonIcon implements Icon, UIResource, Serializable { public void paintOceanIcon(Component c, Graphics g, int x, int y) { ButtonModel model = ((JRadioButton)c).getModel(); boolean enabled = model.isEnabled(); boolean pressed = (enabled && model.isPressed() && model.isArmed()); boolean rollover = (enabled && model.isRollover()); g.translate(x, y); if (enabled && !pressed) { // PENDING: this isn't quite right, when we're sure it won't // change it needs to be cleaned. MetalUtils.drawGradient(c, g, "RadioButton.gradient", 1, 1, 10, 10, true); g.setColor(c.getBackground()); g.fillRect(1, 1, 1, 1); g.fillRect(10, 1, 1, 1); g.fillRect(1, 10, 1, 1); g.fillRect(10, 10, 1, 1); } else if (pressed || !enabled) { if (pressed) { g.setColor(MetalLookAndFeel.getPrimaryControl()); } else { g.setColor(MetalLookAndFeel.getControl()); } g.fillRect(2, 2, 8, 8); g.fillRect(4, 1, 4, 1); g.fillRect(4, 10, 4, 1); g.fillRect(1, 4, 1, 4); g.fillRect(10, 4, 1, 4); } // draw Dark Circle (start at top, go clockwise) if (!enabled) { g.setColor(MetalLookAndFeel.getInactiveControlTextColor()); } else { g.setColor(MetalLookAndFeel.getControlDarkShadow()); } g.drawLine( 4, 0, 7, 0); g.drawLine( 8, 1, 9, 1); g.drawLine(10, 2, 10, 3); g.drawLine(11, 4, 11, 7); g.drawLine(10, 8, 10, 9); g.drawLine( 9,10, 8,10); g.drawLine( 7,11, 4,11); g.drawLine( 3,10, 2,10); g.drawLine( 1, 9, 1, 8); g.drawLine( 0, 7, 0, 4); g.drawLine( 1, 3, 1, 2); g.drawLine( 2, 1, 3, 1); if (pressed) { g.fillRect(1, 4, 1, 4); g.fillRect(2, 2, 1, 2); g.fillRect(3, 2, 1, 1); g.fillRect(4, 1, 4, 1); } else if (rollover) { g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(4, 1, 4, 2); g.fillRect(8, 2, 2, 2); g.fillRect(9, 4, 2, 4); g.fillRect(8, 8, 2, 2); g.fillRect(4, 9, 4, 2); g.fillRect(2, 8, 2, 2); g.fillRect(1, 4, 2, 4); g.fillRect(2, 2, 2, 2); } // selected dot if (model.isSelected()) { if (enabled) { g.setColor(MetalLookAndFeel.getControlInfo()); } else { g.setColor(MetalLookAndFeel.getControlDarkShadow()); } g.fillRect( 4, 4, 4, 4); g.drawLine( 4, 3, 7, 3); g.drawLine( 8, 4, 8, 7); g.drawLine( 7, 8, 4, 8); g.drawLine( 3, 7, 3, 4); } g.translate(-x, -y); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -