Formato de linhas em opengl

Olá pessoa estou com problemas em colocar o formato de linhas na minha aplicação.
Quando coloco um formato de linha para uma unica linha ele modifica as linhas q eu ja desenheipara aquele formato e desenha as proximas linhas usando o mesmo formato para todas sem deixar eu modificar o formato das proximas,será q algué sabe o q eu devo fazer para ajeitar isso.Está aí o codigo:

public class Tracando implements GLEventListener{
private GL gl;
private GLU glu;

    private GLAutoDrawable drawable;
    //Controle de desenhar/limpar a tela
    private int control = 0;
    //Vetor com as componentes da cor
    private float[] color = new float[4];
    //Vector para guardar as primitivas correntes
    private static Vector<Primitivas> primitivas;
    //Indicador de qual algoritmo utilizar
    private int algoritmo = 0;
    //Para marcar o tempo
    private int index;
    private GregorianCalendar cal;
    private long initTime;
    public static long finalTime = 0;
    private double multX, multY;
    private double movX,movY;
    private double rotX,rotY;
    /**
     * Cria uma nova instancia de Tracando
     */
    public Tracando(){
        primitivas = new Vector<Primitivas>();
    }
     public static void addPrimToVector(Primitivas p){
        primitivas.add(p);
    }
    
    /**
     * M�todo para inicializar a amostragem do desenho
     * @param drawableB
     */
public void init(GLAutoDrawable drawableB){
        //Define a cor inicial padr�o (preto)
        for(int i = 0; i < color.length; i++){
            color[i] = 0.0f;
        }
        
        drawable = drawableB;
        gl = drawable.getGL();            
        glu = new GLU();            
        //Cor de fundo (branco)
        gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);            
        gl.glMatrixMode(GL.GL_PROJECTION);
        //Transforma a canvas para 2d, valores de x e y em pixels
        glu.gluOrtho2D(0,600,600,0);
        gl.glMatrixMode(GL.GL_MODELVIEW);
        
}
    
    /**
     * M�todo para dar o refresh na tela
     * @param drawableB
     */
public void display(GLAutoDrawable drawableB){
        gl.glLoadIdentity();
        gl.glClear(GL.GL_COLOR_BUFFER_BIT);
        //Caso haja algo para ser desenhado      
            cal = new GregorianCalendar();
            initTime = cal.getTimeInMillis();
                                                            
            for(int i = 0; i < primitivas.size(); i++){                        
                Primitivas p = primitivas.get(i);                    
                setColor(p.getColor());
                p.desenha(this);
                //p.desenha(p.getX(),p.getY(),p.getEsp(),p.getFormat(),p.getFator(),p.getTipo());
            }                
            cal = new GregorianCalendar();
            finalTime = cal.getTimeInMillis() - initTime;                            
        gl.glFlush();
}

    public void desenha(Vector <Double> x,Vector <Double> y,float esp,int format,int fator,char tipo){
        System.out.println("bbbbX1 - "+x.get(0)+" Y1 - "+y.get(0)+" X2 - "+x.get(1)+" Y2 - "+y.get(1));
        System.out.println(format);
        if(tipo=='L'){
            if(x.size()==2){
                //EXPESSURA DA LINHA
                if(format!=0x0F0F){
                    gl.glEnable(gl.GL_LINE_STIPPLE);
                    gl.glLineStipple(fator,(short) format);
                }
                gl.glEnable(gl.GL_LINE_WIDTH);
                gl.glLineWidth(esp);
                gl.glBegin(gl.GL_LINES);
                    gl.glVertex2d(x.get(0),y.get(0));
                    gl.glVertex2d(x.get(1),y.get(1));
                gl.glEnd();
               // gl.glPushAttrib(10);
            }else{
                if(format!=0x0F0F){
                    gl.glEnable(gl.GL_LINE_STIPPLE);
                    gl.glLineStipple(fator,(short) format);
                }
                gl.glEnable(gl.GL_LINE_WIDTH);
                gl.glLineWidth(esp);
                 gl.glBegin(gl.GL_LINE_LOOP);
                       for(int i = 0;i < x.size();i++){
                            gl.glVertex2d(x.get(i), y.get(i));
                       }
                 gl.glEnd();
            }

        }else{
            if(tipo=='P'){
                gl.glBegin(gl.GL_POLYGON);
                    for(int i = 0;i < x.size();i++){
                        gl.glVertex2d(x.get(i), y.get(i));
                    }
                gl.glEnd();
            }
        }

// gl.glMap2f(fator, esp, esp, fator, fator, esp, esp, fator, fator, arg9);
}

DEVE ESTÁ POR AKI O ERRO.OLHAEM PRINCIPALMENTE A CLASSE DESENHA E MI DIGAM O Q FAZER.OBRIGADO. :smiley: