Mais de uma imagem de fundo responsivo

Estou tentando criar um layout responsivo com três imagens:

###Classe 1

package gui;

import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;


public class FundoTela extends JDesktopPane{
    private Image imagem;
    
    public FundoTela(String imagem){
        this.imagem = new ImageIcon(imagem).getImage();
    }
    public void paintComponent (Graphics g){
        
        g.drawImage(imagem, 0, 0, 300, 100, this);
    }
}

###Classe 2

package gui;

import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;

public class MenuLat extends JDesktopPane {
    private Image imagem;
    
    public MenuLat(String imagem){
        this.imagem = new ImageIcon(imagem).getImage();
    }
    public void paintComponent (Graphics g){
        g.drawImage(imagem, 0, 100, 300, (getHeight()), this);
    }

a classe 3 segue o mesmo padrão

###JFrame

package gui;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.border.Border;
public class Teste extends javax.swing.JFrame 
{
    FundoTela tela;
    MenuLat tela2;
    SegundoTop tela3;            
    public Teste() 
    {
        initComponents();
        Border border = BorderFactory.createLineBorder(Color.BLUE, 1);
        Insets in = Toolkit.getDefaultToolkit()
                                  .getScreenInsets(this.getGraphicsConfiguration());
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int width = d.width - (in.left + in.top);
        int height = d.height - (in.top + in.bottom);
        setSize(width, height);
        setLocation(in.left, in.top);
        setLayout(new GridBagLayout());
        tela = new FundoTela("src/gui/topo.png");
        tela2 = new MenuLat("src/gui/menu_lat.png");
        tela3 = new SegundoTop("src/gui/topo_1.png");
        getContentPane().add(tela);        
        getContentPane().add(tela2);        
        getContentPane().add(tela3);
    }
}

porém não consigo de forma alguma alinhar as imagens, fica tudo errado, o que estou fazendo de errado?

1 curtida