protected void paintBackground(Graphics g, JComponent c, int x, int y, int w, int h) { JMenuItem b = (JMenuItem) c; ButtonModel model = b.getModel(); if (model.isArmed() || (c instanceof JMenu && model.isSelected())) { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getMenuSelectionColors(), x, y, w, h); } else if (!AbstractLookAndFeel.getTheme().isMenuOpaque()) { Graphics2D g2D = (Graphics2D) g; Composite composite = g2D.getComposite(); AlphaComposite alpha = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, AbstractLookAndFeel.getTheme().getMenuAlpha()); g2D.setComposite(alpha); g.setColor(AbstractLookAndFeel.getMenuBackgroundColor()); g.fillRect(x, y, w, h); g2D.setComposite(composite); } else { g.setColor(AbstractLookAndFeel.getMenuBackgroundColor()); g.fillRect(x, y, w, h); } if (menuItem.isSelected() && menuItem.isArmed()) { g.setColor(AbstractLookAndFeel.getMenuSelectionForegroundColor()); } else { g.setColor(AbstractLookAndFeel.getMenuForegroundColor()); } }
public void paintBackground(Graphics g) { if (backgroundImage != null) { g.drawImage(backgroundImage, 0, 0, null); } else { BernsteinUtils.fillComponent(g, this); } Graphics2D g2D = (Graphics2D) g; Composite composite = g2D.getComposite(); AlphaComposite alpha = null; if (backgroundImage != null) { alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alphaValue); } else { alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f); } g2D.setComposite(alpha); JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getDefaultColors(), 0, 0, getWidth(), getHeight()); g2D.setComposite(composite); }
public void paintIcon(Component c, Graphics g, int x, int y) { if (!JTattooUtilities.isLeftToRight(c)) { x += GAP; } int w = getIconWidth() - GAP; int h = getIconHeight(); Graphics2D g2D = (Graphics2D) g; AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); Color colors[]; if (button.isEnabled()) { if ((button.isRolloverEnabled() && model.isRollover()) || (model.isPressed() && model.isArmed())) { colors = AbstractLookAndFeel.getTheme().getRolloverColors(); } else { if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) { colors = AbstractLookAndFeel.getTheme().getFocusColors(); } else { colors = AbstractLookAndFeel.getTheme().getCheckBoxColors(); } } } else { colors = AbstractLookAndFeel.getTheme().getDisabledColors(); } Color frameColor = ColorHelper.brighter(AbstractLookAndFeel.getTheme().getButtonBackgroundColor(), 6); Shape savedClip = g.getClip(); Area clipArea = new Area(new Ellipse2D.Double(x, y, w + 1, h + 1)); if (savedClip != null) { clipArea.intersect(new Area(savedClip)); } g2D.setClip(clipArea); JTattooUtilities.fillHorGradient(g, colors, x, y, w, h); g2D.setClip(savedClip); Object savedRederingHint = g2D.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(frameColor); g.drawOval(x, y, w, h); if (model.isSelected()) { if (model.isEnabled()) { Color fc = AbstractLookAndFeel.getForegroundColor(); if (ColorHelper.getGrayValue(colors[0]) < 128) { if (ColorHelper.getGrayValue(fc) < 128) { g2D.setColor(Color.white); } else { g2D.setColor(fc); } } else { if (ColorHelper.getGrayValue(fc) > 128) { g2D.setColor(Color.black); } else { g2D.setColor(fc); } } } else { g.setColor(AbstractLookAndFeel.getDisabledForegroundColor()); } if (AbstractLookAndFeel.getTheme().isSmallFontSize()) { g2D.fillOval(x + 4, y + 4, w - 7, h - 7); } else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) { g2D.fillOval(x + 4, y + 4, w - 7, h - 7); } else { g2D.fillOval(x + 5, y + 5, w - 9, h - 9); } } g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, savedRederingHint); }
public void paintIcon(Component c, Graphics g, int x, int y) { if (!JTattooUtilities.isLeftToRight(c)) { x += GAP; } int w = getIconWidth() - GAP; int h = getIconHeight(); AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); Graphics2D g2D = (Graphics2D) g; if (button.isEnabled()) { if ((button.isRolloverEnabled() && model.isRollover())) { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getRolloverColors(), x + 1, y + 1, w - 1, h - 1); } else { if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getFocusColors(), x + 1, y + 1, w - 1, h - 1); } else { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getCheckBoxColors(), x + 1, y + 1, w - 1, h - 1); } } } else { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getDisabledColors(), x + 1, y + 1, w - 1, h - 1); } Color frameColor = ColorHelper.brighter(AbstractLookAndFeel.getTheme().getButtonBackgroundColor(), 6); Color loFrameColor = ColorHelper.darker(AbstractLookAndFeel.getTheme().getButtonBackgroundColor(), 50); g.setColor(frameColor); g.drawRect(x, y, w, h); Composite savedComposite = g2D.getComposite(); AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); g2D.setComposite(alpha); g.setColor(loFrameColor); g.drawLine(x + 1, y + 1, x + w - 1, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 1); g2D.setComposite(savedComposite); Icon checkIcon; Icon checkDisabledIcon; Icon checkInverseIcon; if (AbstractLookAndFeel.getTheme().isSmallFontSize()) { checkIcon = SMALL_CHECK_ICON; checkDisabledIcon = SMALL_CHECK_DISABLED_ICON; checkInverseIcon = SMALL_CHECK_INVERSE_ICON; } else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) { checkIcon = MEDIUM_CHECK_ICON; checkDisabledIcon = MEDIUM_CHECK_DISABLED_ICON; checkInverseIcon = MEDIUM_CHECK_INVERSE_ICON; } else { checkIcon = LARGE_CHECK_ICON; checkDisabledIcon = LARGE_CHECK_DISABLED_ICON; checkInverseIcon = LARGE_CHECK_INVERSE_ICON; } int xi = x + ((w - checkIcon.getIconWidth()) / 2) + 1; int yi = y + ((h - checkIcon.getIconHeight()) / 2); int gv = ColorHelper.getGrayValue(AbstractLookAndFeel.getButtonForegroundColor()); if (model.isPressed() && model.isArmed()) { Color bc = gv > 128 ? AbstractLookAndFeel.getTheme().getSelectionForegroundColor() : AbstractLookAndFeel.getTheme().getSelectionBackgroundColor(); Color fc = gv > 128 ? ColorHelper.brighter(bc, 20) : ColorHelper.darker(bc, 40); g.setColor(fc); g.drawRect(x + 4, y + 4, w - 8, h - 8); g.setColor(bc); g.fillRect(x + 5, y + 5, w - 9, h - 9); } else if (model.isSelected()) { if (!model.isEnabled()) { checkDisabledIcon.paintIcon(c, g, xi + 1, yi); } else { if (gv > 128) { checkIcon.paintIcon(c, g, xi, yi); } else { checkInverseIcon.paintIcon(c, g, xi + 1, yi + 1); } } } }
public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { Graphics2D g2D = (Graphics2D) g; boolean active = isActive(c); boolean resizable = isResizable(c); int th = getTitleHeight(c); Color frameColor = AbstractLookAndFeel.getWindowInactiveBorderColor(); Color titleColor = AbstractLookAndFeel.getWindowInactiveTitleColorLight(); if (active) { titleColor = AbstractLookAndFeel.getWindowTitleColorLight(); frameColor = AbstractLookAndFeel.getWindowBorderColor(); } if (!resizable) { Insets bi = getBorderInsets(c); g.setColor(frameColor); g.drawRect(x, y, w - 1, h - 1); if (active) { g.setColor(AbstractLookAndFeel.getWindowTitleColorDark()); } else { g.setColor(AbstractLookAndFeel.getWindowInactiveTitleColorDark()); } for (int i = 1; i < bi.left; i++) { g.drawRect(i, i, w - (2 * i) - 1, h - (2 * i) - 1); } g.setColor(frameColor); g.drawLine(bi.left - 1, y + th + bi.top, bi.left - 1, y + h - bi.bottom); g.drawLine(w - bi.right, y + th + bi.top, w - bi.right, y + h - bi.bottom); g.drawLine(bi.left - 1, y + h - bi.bottom, w - bi.right, y + h - bi.bottom); return; } g.setColor(titleColor); g.fillRect(x, y + 1, w, dw - 1); g.fillRect(x + 1, y + h - dw, w - 2, dw - 1); Color color = ColorHelper.brighter(AbstractLookAndFeel.getWindowTitleColorDark(), 30); if (active) { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getWindowTitleColors(), 1, dw, dw, th + 1); JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getWindowTitleColors(), w - dw, dw, dw, th + 1); Color c1 = AbstractLookAndFeel.getTheme().getWindowTitleColorDark(); Color c2 = AbstractLookAndFeel.getTheme().getWindowTitleColorLight(); g2D.setPaint(new GradientPaint(0, dw + th + 1, c1, 0, h - th - (2 * dw), c2)); g.fillRect(1, dw + th + 1, dw - 1, h - th - (2 * dw)); g.fillRect(w - dw, dw + th + 1, dw - 1, h - th - (2 * dw)); g2D.setPaint(null); } else { JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getWindowInactiveTitleColors(), 1, dw, dw, th + 1); JTattooUtilities.fillHorGradient( g, AbstractLookAndFeel.getTheme().getWindowInactiveTitleColors(), w - dw, dw, dw, th + 1); Color c1 = AbstractLookAndFeel.getTheme().getWindowInactiveTitleColorDark(); Color c2 = AbstractLookAndFeel.getTheme().getWindowInactiveTitleColorLight(); g2D.setPaint(new GradientPaint(0, dw + th + 1, c1, 0, h - th - (2 * dw), c2)); g.fillRect(1, dw + th + 1, dw - 1, h - th - (2 * dw)); g.fillRect(w - dw, dw + th + 1, dw - 1, h - th - (2 * dw)); g2D.setPaint(null); } if (active && resizable) { int d = dw + 12; // unten color = AbstractLookAndFeel.getWindowTitleColorDark(); Color cHi = ColorHelper.brighter(color, 30); Color cLo = ColorHelper.darker(color, 20); // links g.setColor(color); g.fillRect(x + 1, y + h - d, dw - 1, d - 1); g.fillRect(x + dw, y + h - dw, d - dw - 1, d - dw - 1); g.setColor(cLo); g.drawLine(x + 1, y + h - d - 2, x + dw - 2, y + h - d - 2); g.drawLine(x + dw - 2, y + h - d - 2, x + dw - 2, y + h - dw); g.drawLine(x + dw - 2, y + h - dw, x + d - 1, y + h - dw); g.drawLine(x + d - 1, y + h - dw, x + d - 1, y + h - 1); g.setColor(cHi); g.drawLine(x + 1, y + h - d - 1, x + dw - 3, y + h - d - 1); g.drawLine(x + dw - 1, y + h - d - 1, x + dw - 1, y + h - dw - 1); g.drawLine(x + dw - 1, y + h - dw + 1, x + d - 2, y + h - dw + 1); g.drawLine(x + d - 2, y + h - dw + 1, x + d - 2, y + h - 1); // rechts g.setColor(color); g.fillRect(x + w - d - 1, y + h - dw, d, dw - 1); g.fillRect(x + w - dw, y + h - d - 1, dw - 1, d); g.setColor(cLo); g.drawLine(x + w - dw - 1, y + h - d - 2, x + w - 1, y + h - d - 2); g.drawLine(x + w - dw, y + h - d - 2, x + w - dw, y + h - dw); g.drawLine(x + w - d - 1, y + h - dw, x + w - dw, y + h - dw); g.drawLine(x + w - d - 1, y + h - dw, x + w - d - 1, y + h - 1); g.setColor(cHi); g.drawLine(x + w - dw + 1, y + h - d - 1, x + w - 1, y + h - d - 1); g.drawLine(x + w - dw + 1, y + h - d - 1, x + w - dw + 1, y + h - dw); g.drawLine(x + w - d, y + h - dw + 1, x + w - dw + 1, y + h - dw + 1); g.drawLine(x + w - d, y + h - dw + 1, x + w - d, y + h - 1); } g.setColor(frameColor); g.drawRect(x, y, w - 1, h - 1); g.drawLine(x + dw - 1, y + dw + th, x + dw - 1, y + h - dw); g.drawLine(x + w - dw, y + dw + th, x + w - dw, y + h - dw); g.drawLine(x + dw - 1, y + h - dw, x + w - dw, y + h - dw); }
protected void paintBackground(Graphics g, AbstractButton b) { if (!b.isContentAreaFilled() || (b.getParent() instanceof JMenuBar)) { return; } if (!(b.isBorderPainted() && (b.getBorder() instanceof UIResource))) { super.paintBackground(g, b); return; } int width = b.getWidth(); int height = b.getHeight(); ButtonModel model = b.getModel(); Graphics2D g2D = (Graphics2D) g; Composite composite = g2D.getComposite(); Object savedRederingHint = g2D.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); if (((width < 64) || (height < 16)) && ((b.getText() == null) || b.getText().length() == 0)) { if (model.isSelected()) { Color color = ColorHelper.darker(b.getBackground(), 20); g2D.setColor(color); g2D.fillRect(0, 0, width - 1, height - 1); if (model.isEnabled()) { g2D.setColor(AbstractLookAndFeel.getFrameColor()); } else { g2D.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 20)); } g2D.drawRect(0, 0, width - 1, height - 1); } else { Color[] colors = null; if (b.getBackground() instanceof ColorUIResource) { if (!model.isEnabled()) { colors = AbstractLookAndFeel.getTheme().getDisabledColors(); } else if (b.isRolloverEnabled() && model.isRollover()) { colors = AbstractLookAndFeel.getTheme().getRolloverColors(); } else { colors = AbstractLookAndFeel.getTheme().getButtonColors(); } } else { colors = ColorHelper.createColorArr( ColorHelper.brighter(b.getBackground(), 20), ColorHelper.darker(b.getBackground(), 20), 20); } JTattooUtilities.fillHorGradient(g, colors, 0, 0, width - 1, height - 1); if (model.isEnabled()) { g2D.setColor(AbstractLookAndFeel.getFrameColor()); } else { g2D.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 20)); } g2D.drawRect(0, 0, width - 1, height - 1); AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f); g2D.setComposite(alpha); g2D.setColor(Color.white); g2D.drawRect(1, 1, width - 3, height - 3); } } else if (model.isPressed() && model.isArmed()) { int d = height - 2; Color color = AbstractLookAndFeel.getTheme().getSelectionBackgroundColor(); g2D.setColor(color); g2D.fillRoundRect(0, 0, width - 1, height - 1, d, d); g2D.setColor(ColorHelper.darker(color, 40)); g2D.drawRoundRect(0, 0, width - 1, height - 1, d, d); } else if (model.isSelected()) { int d = height - 2; Color color = ColorHelper.darker(b.getBackground(), 20); g2D.setColor(color); g2D.fillRoundRect(0, 0, width - 1, height - 1, d, d); if (model.isEnabled()) { g2D.setColor(AbstractLookAndFeel.getFrameColor()); } else { g2D.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 20)); } g2D.drawRoundRect(0, 0, width - 1, height - 1, d, d); } else { int d = height - 2; Color[] colors = null; if (b.getBackground() instanceof ColorUIResource) { if (!model.isEnabled()) { colors = AbstractLookAndFeel.getTheme().getDisabledColors(); } else if (b.isRolloverEnabled() && model.isRollover()) { colors = AbstractLookAndFeel.getTheme().getRolloverColors(); } else { colors = AbstractLookAndFeel.getTheme().getButtonColors(); } } else { colors = ColorHelper.createColorArr( ColorHelper.brighter(b.getBackground(), 20), ColorHelper.darker(b.getBackground(), 20), 20); } Shape savedClip = g.getClip(); Area clipArea = new Area(new RoundRectangle2D.Double(0, 0, width - 1, height - 1, d, d)); clipArea.intersect(new Area(savedClip)); g2D.setClip(clipArea); JTattooUtilities.fillHorGradient(g, colors, 0, 0, width, height); g2D.setClip(savedClip); if (model.isEnabled()) { g2D.setColor(AbstractLookAndFeel.getFrameColor()); } else { g2D.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 20)); } g2D.drawRoundRect(0, 0, width - 1, height - 1, d, d); AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f); g2D.setComposite(alpha); g2D.setColor(Color.white); g2D.drawRoundRect(1, 1, width - 3, height - 3, d - 2, d - 2); } g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, savedRederingHint); g2D.setComposite(composite); }