Componentes visuais

Boa tarde Senhores,
preciso desenvolver um componente visual que é apenas um quadro (com bordas pretas e um local para se colocar o nome), ou seja, apenas uma moldura, porém o centro desta deve estar transparente deixando acessar os componentes internos a ele. Veja o arquivo abaixo.
O quadro em volta dos 3 objetos (Botão, Um cano azul e uma antena) que são vistos na imagem está sobrepondo estes componentes. Uma vez que crio o quadro e coloco os componentes dentro, o quadro sobrepõem os 3 objetos, assim não consigo ter acesso a eles. Preciso queeste quadro seja vazado, deixando ser arrastado apenas quando o seguro com os mouse pelas bodas.

Alguém tem uma boa idéia de como fazer isso?
Ou ao menos fazer com que este componente fique abaixo definitivamente dos outros?

Agradeço desde já,

Well

Segue abaixo o código fonte:
Obs.: CriaObjetoSemConfiguracao é uma classe que faz herança de um jLabel (Abaixo estou colocando borda em um jLabel)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ObjetosSemConfiguracao;

import ObjetosComuns.CriaObjetoSemConfiguracao;
import java.awt.Color;
import java.awt.Font;
import java.awt.Point;
import java.io.Serializable;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;

/**
 *
 * 
 */
public class ObjetoEnvoltorio extends CriaObjetoSemConfiguracao implements Serializable{
    private int sizex,sizey;

    public int getSizex() {
        return sizex;
    }

    public void setSizex(int sizex) {
        this.sizex = sizex;
    }

    public int getSizey() {
        return sizey;
    }

    public void setSizey(int sizey) {
        this.sizey = sizey;
    }

    public ObjetoEnvoltorio(String name, Point x,int sizex, int sizey) {
        super(name);
        this.sizex = sizex;
        this.sizey = sizey;
        setLocation(x);
        getPosx();
        getPosy();
        setSize(sizex, sizey);
        TitledBorder titledBorder = BorderFactory.createTitledBorder(" " + name + " ");
        titledBorder.setTitleColor(Color.RED);
        titledBorder.setTitleJustification(TitledBorder.LEFT);
        Font f = new Font("Monospaced", Font.BOLD, 16);
        titledBorder.setTitleFont(f);
        titledBorder.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5));
        setBorder(titledBorder);
        super.type = "envoltorio";
        setOpaque(false);
        setFocusable(false);
        //setComponentZOrder(this, 100);
    }

    public ObjetoEnvoltorio(String name, int posx, int posy,int sizex,int sizey) {
        super(name, posx, posy);
        setSize(sizex, sizey);
        TitledBorder titledBorder = BorderFactory.createTitledBorder(" " + name + " ");
        titledBorder.setTitleColor(Color.RED);
        titledBorder.setTitleJustification(TitledBorder.LEFT);
        Font f = new Font("Monospaced", Font.BOLD, 16);
        titledBorder.setTitleFont(f);
        titledBorder.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5));
        setBorder(titledBorder);
        super.type = "envoltorio";
        setLocation(posx, posy);
        setOpaque(false);
        setFocusable(false);
        //setComponentZOrder(this, 100);
    }

    @Override
    public String toString(){
       return this.name+"-"+String.valueOf(this.posx) + "-" +String.valueOf(this.posy)+
               "-"+String.valueOf(this.sizex)+"-"+String.valueOf(this.sizey);
    }
}