JPanel com tamanho definido no JTabbetPane

Boa tarde… alguem consegue achar o erro?
Tipo, não retorna nenhum erro, cria os paineis com a imagem, porem tudo com tamanho minusculo e um ao lado do outro. Nenhum com o tamanho e lugar que defino.
Obs. Eu sei que com esse codigo, todos ficaram no mesmo lugar e com o mesmo tamanho, porem não é isso que esta acontecendo. isso é o de menos.

public void criarItens() throws IOException {
        
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JPanel panelPrincipal = new JPanel();

                for (int i = 0; i < 8; i++) {

                    JImagePanel panelItens;
                    try {
                        panelItens = new JImagePanel(loadImage("./src/TELAS/imagens/carro.jpeg"));
                        //panelPrincipal.add(panelItens, new org.netbeans.lib.awtextra.AbsoluteConstraints(2, 2, 30, 40)); //ja tentei assim tbm

                        panelPrincipal.add(panelItens);
                        panelItens.setBounds(5, 5, 100, 100);
                    } catch (IOException ex) {
                        Logger.getLogger(VendaCadastro.class.getName()).log(Level.SEVERE, null, ex);
                    }

                }
                panelPrincipal.setBackground(Color.CYAN);

                JScrollPane scroll = new JScrollPane(panelPrincipal);
                scroll.setPreferredSize(new Dimension(300, 300));
                jTabItens.add("Carros", scroll);

            }
        });

    }