void (Component c, Graphics g, int x, int y, int width, int height) { JComponent jc = (JComponent)c; if (jc.getClientProperty("JTextField.Search.noBorderRing") == Boolean.TRUE) return; Graphics2D g2 = (Graphics2D)g.create(); try { Rectangle r = new Rectangle(x, y, width, height); WinIntelliJTextFieldUI.adjustInWrapperRect(r, c); boolean isCellRenderer = DarculaUIUtil.isTableCellEditor(c); int bw = 1; DarculaUIUtil.Outline op = DarculaUIUtil.getOutline(jc); if (c.isEnabled() && op != null) { op.setGraphicsColor(g2, c.hasFocus()); bw = isCellRenderer ? 1 : 2; } else { if (c.hasFocus()) { g2.setColor(UIManager.getColor("TextField.focusedBorderColor")); } else if (jc.getClientProperty(HOVER_PROPERTY) == Boolean.TRUE) { g2.setColor(UIManager.getColor("TextField.hoverBorderColor")); } else { g2.setColor(UIManager.getColor(c.isEnabled() ? "TextField.borderColor" : "Button.intellij.native.borderColor")); } if (!c.isEnabled()) { g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.47f)); } if (!isCellRenderer) { JBInsets.removeFrom(r, JBUI.insets(1)); } } g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE); Path2D border = new Path2D.Float(Path2D.WIND_EVEN_ODD); border.append(r, false); Rectangle innerRect = new Rectangle(r); JBInsets.removeFrom(innerRect, JBUI.insets(bw)); border.append(innerRect, false); g2.fill(border); } finally { g2.dispose(); } }