@Override public Dimension getPreferredSize(JComponent c) { final OnOffButton button = (OnOffButton)c; String text = button.getOffText().length() > button.getOnText().length() ? button.getOffText() : button.getOnText(); text = text.toUpperCase(); final FontMetrics fm = c.getFontMetrics(c.getFont()); int w = fm.stringWidth(text); int h = fm.getHeight(); h += 2*4; w += 3 * h / 2; return new Dimension(w, h); } @Override
g.drawRoundRect(0, 0, w, h, 5, 5); g.setColor(UIUtil.getLabelDisabledForeground()); g.drawString(button.getOffText(), h + 4 , h - 4); g.setColor(UIUtil.getBorderColor()); g.setPaint(new GradientPaint(h, 0, new JBColor(Gray._158, Gray._100), 0, h, new JBColor(Gray._210, Gray._100)));