void (@NotNull Graphics g) { super.paintComponent(g); Rectangle bounds = g.getClipBounds(); int startRow = Math.max(0, rowAtPoint(bounds.getLocation())); int endRow = rowAtPoint(new Point(bounds.x + bounds.width, bounds.y + bounds.height)); if (endRow == -1) { endRow = myModel.getRowCount() - 1; } int iconWidth = myAnimatedIcon.getIconWidth(); int cellHeight = myAnimatedIcon.getIconHeight(); int offset = JBUIScale.scale(5); int editingRow = getEditingRow(); int selectedRow = getSelectedRow(); Border border = UIUtil.getTableFocusCellHighlightBorder(); for (int i = startRow; i <= endRow; i++) { UrlInfo item = myModel.getItem(i); if (item.progress && i != editingRow) { Rectangle rect = getCellRect(i, 0, true); int x = rect.x + rect.width - iconWidth - offset; int xx = 0; int yy = 0; int hh = 0; if (i == selectedRow) { Insets insets = border.getBorderInsets(null); xx = insets.right; yy = insets.top; hh = insets.top + insets.bottom + 1; } g.setColor(i == selectedRow ? getSelectionBackground() : getBackground()); g.fillRect(x - offset, rect.y + yy, iconWidth + offset * 2 - xx, rect.height - hh); myAnimatedIcon.paintIcon(this, g, x, rect.y + (rect.height - cellHeight) / 2); } } }