Написал небольшой участок кода для теста отрисовки изображения
import javax.swing.*;
import java.awt.*;
public class MainWindow extends JFrame {
private Image avt;
public MainWindow()
{
setSize(800, 500);
setLocation(500, 0);
setVisible(true);
load_img();
}
public void load_img()
{
ImageIcon avatar = new ImageIcon("avatar.png");
avt = avatar.getImage();
}
public void paintComponents(Graphics g) {
super.paintComponents(g);
g.drawImage(avt, 0, 20, this);
}
public static void main(String[] args)
{
MainWindow mw = new MainWindow();
}
}
Однако paintComponents в данном случае просто не работает.
Если заменить его на paint, то соответственно все отрисует.
Так в чем собственно разница? И почему paintComponents в данном случае даже не запускается в процессе выполнения кода?