Alguém pode me dar um exemplo de paintIcon(component, graphics, x, y);, gostaria de saber se executa esse métodos dentro de paint ou paintComponent?! e como faço para executá-lo?!
Você não deveria chamar esses métodos diretamente.
Se quer fazer desenhos, utilize o objeto Graphics do paintComponent para desenhar BufferedImages. As BufferedImages você pode carregar com o método ImageIO.read. Só cuide para não carrega-las dentro do paintComponent.