Q: ¿porque imprime mal los valores de mi vector? buenas tardes tengo un código donde dependiendo el producto que se elija es el numero de pictogramas que debe tener la etiqueta de este producto la clase donde hago la consulta a esa tabla dependiendo del íd de producto es la siguiente: 
private int id_pictograma;
private int activo;
public Vector<ConsultasPictogramas> MostrarPictograma(int a) {
    PreparedStatement ps = null;
    ResultSet rs = null;
    Conexion conn = new Conexion();
    Connection con = conn.getConnection();
    Vector<ConsultasPictogramas> datos = new Vector<ConsultasPictogramas>();
    ConsultasPictogramas dat = null;

    try {
        String sql = "SELECT Id_pictograma,activo FROM k_producto_pictograma WHERE Id_producto=" + a;
        ps = con.prepareStatement(sql);
        rs = ps.executeQuery();
        dat = new ConsultasPictogramas();  
        while (rs.next()) {
            dat = new ConsultasPictogramas();
             dat.setId_pictograma(rs.getInt("Id_pictograma"));
            dat.setActivo(rs.getInt("activo"));
            datos.add(dat);
        }
        rs.close();
    } catch (SQLException ex) {
        System.out.println(ex.toString());
    }
    return datos;
}

y en un jframe mando a llamar el metodo para utilizar los datos que se supone debe tener
String id = CBProductos.getSelectedItem().toString();
    jProductoetiqueta.setText(id);
    int idp=CBProductos.getSelectedIndex();
    System.out.println("id=producto"+idp);
    ConsultasPictogramas cc = new ConsultasPictogramas();
    System.out.println("vector"+cc.MostrarPictograma(idp));

pero al imprimirlo en consola sale esto:
id=producto1
vector[Controlador.ConsultasPictogramas@4b977766]

incluso si el producto tiene mas de dos pictogramas sale de ese modo pero dos veces 
id=producto12
vector[Controlador.ConsultasPictogramas@7a42675e, Controlador.ConsultasPictogramas@2be8bc92]
ejemplo de producto con 4 pictogramas
id=producto24
vector[Controlador.ConsultasPictogramas@ba743a7, Controlador.ConsultasPictogramas@3366c995]
array[Controlador.ConsultasPictogramas@44be38d1, Controlador.ConsultasPictogramas@44be38d1] 

que podría ser ?

A: lo que pasa es que solo imprimes su referencia en memoria, 
tu linea de codigo deberia ser algo a si:
   System.out.println("vector"+cc.MostrarPictograma(idp).get(index).getValorQueQuieroMostrar());

donde index es la posicion del Vector que quieres obtener.
Otro ejemplo:
    private void test(){
    Vector<Prueba> datos =new Vector<Prueba>();
    Prueba p = new Prueba();
    p.valor1 = "valor 2";

    datos.add(p);

    System.out.print("test1: "+ datos);
    System.out.print("test2: "+ datos.get(0));
    System.out.print("test3: "+ datos.get(0).valor1);
}



}

  class Prueba{
     String valor1 = "valor 1";
     }

En ese supuesto los valores de los system serian los siguientes:
test1: [Miclase.Prueba@5309d32]       // (Se pinta la referencia en memoria del vector completo)
test2: MiClase.Prueba@5309d32    // (Se pinta la referencia en memoria del item 0 del vector)
test3: valor 2   // (Se pinta el valor de la variable "valor1" del primer objeto del Vector)

Ahora si no quieres hacer un get en la linea de tu System, entonces tendrias que sobre escribir el metodo toString de tu clase:
Ejmplo:
En la clase anterior agregamos el toString en la clase prueba:
class Prueba{
String valor1 = "valor 1";


  @Override
  public String toString() {
    return "Este es mi toStringcustom: "+valor1;
 }
  }

Con eso en lugar de imprimir la referencia en memoria, realizaría la impresión del valor que quieres mostrar en el método toString()
 test1: [Este es mi toStringcustom: valor 2]
 test2: Este es mi toStringcustom: valor 2
 test3: valor 2

