JScrollPane na JPanel

Pessoal, eu quero colocar ScrollBar no meu JPanel, e que que a ScrollBar apareça quando o tamanho da linha que eu desenho ultrapasse o tamanho do JPanel, mas não estou conseguindo. Alguém pode ajudar?

[code]class Grafico extends JPanel{
public void Linha(){
repaint();
JScrollPane barra = new JScrollPane();
this.setPreferredSize(new Dimension(500, 500));
barra.setViewportView(this);
barra.add(this);
barra.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
barra.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
this.setAutoscrolls(true);
}

    public void paint(Graphics g){
        g.drawLine(100, 2000, 100, 50);
        g.drawLine(300, 100, 50, 100);
    }
}[/code]

Você deve configurar a propriedade setPreferredSize do seu JPanel.

Eu já havia colocado a propriedade, só que ela está na classe que estende um JPanel

class Grafico extends JPanel{  
        public void Linha(){  
            this.setPreferredSize(new Dimension(500, 500));  
        }  
}  

[quote=thiagomartendal]Eu já havia colocado a propriedade, só que ela está na classe que estende um JPanel

class Grafico extends JPanel{  
        public void Linha(){  
            this.setPreferredSize(new Dimension(500, 500));  
        }  
}  

[/quote]

Esse size precisa ter o tamanho total da imagem. No caso, se você tem uma linha com 2000 de altura, esse size precisaria ter pelo menos esses 2000.

Ainda nãos está aparecendo as barras de rolagem, eu não sei mais o que tentar.

O JScrollPane não deve ser colocado na classe do JPanel, e sim, fora, na janela:

[code]//Crie seu JPanel
Grafico g = new Grafico();

//Coloque-o dentro de um JScrollPane
JScrollPane barras = new JScrollPane(g);

//Coloque o JScrollpane na janela principal
this.add(barras);[/code]

Obrigado Vini