Barra de rolagem em uma JPanel

Galera, me ajudem com um problema que está rolando aqui no meu código. Eu tento colocar uma JScrollPanel() na minha JPanel, porém, a barra de rolagem não aparece. Detalhe eu fiz a mesma coisa em componente menores da minha tela, e deu certo, soh na hora que colocar a scroll no componente maior que ele fica com um Bug. Segue abaixo o meu código

As partes do código que estão comentadas é o código com a scroll. Eu deixei ela sem a scrolls pra vcs verem a tela…

Eu queria colocar uma scroll no corpo da tela, pra que caso haja mais mensagens nela (ali soh tem 3 mensagens) quebrasse a barra de rolagem.

[code]package ManterTopicos;
//pacote necessário para utilizar a classe
//JButton
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Rectangle;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.border.Border;
public class layoutTopicosMensagens extends JFrame{
private JFrame mainFrame;
private Container quadro;
private JPanel quadroTitulo;
private JPanel quadroTituloCorpo;
private JPanel fundoUsu;
private JPanel quadroCorpoUsuario;
private JPanel quadroCorpoUsuario2;
private JPanel quadroCorpoUsuario3;
private JPanel quadroNomeUsuario;
private JPanel quadroNomeUsuario2;
private JPanel quadroNomeUsuario3;
private JPanel quadroRodape;
private JPanel fundoUsu2;
private JPanel fundoUsu3;
private JLabel titulo;
private JLabel tituloUsuario;
private JLabel tituloMsg;
private JLabel nomeUsu;
private JLabel nomeUsu2;
private JLabel nomeUsu3;
private JLabel tipoUsu;
private JLabel tipoUsu2;
private JLabel tipoUsu3;
private JTextArea textCorpoUsuario;
private JTextArea textCorpoUsuario2;
private JTextArea textCorpoUsuario3;
private JScrollPane barraRolagemCaixaMsg;
private JScrollPane barraRolagemCaixaMsg2;
private JScrollPane barraRolagemCaixaMsg3;
private JScrollPane mainScroll;
private JButton btExcluir;
private JTable tabela;

//método construtor                
public layoutTopicosMensagens(){
    
	//Instancia um objeto JFrame
    JFrame mainFrame = new JFrame("Projeto de LTP - IV");
    mainFrame.setLayout(null);
    mainFrame.setBounds(0,0 , 820, 600);
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //adiciona um conteiner
    quadro =  mainFrame.getContentPane();
    
  //MENUS DA BARRA SUPERIOR
    JMenuBar menuSuperior = new JMenuBar();
    JMenu menuOpcoes = new JMenu("Opções");
    menuSuperior.add(menuOpcoes);
    setJMenuBar(menuSuperior);    	
    //TITULO
    quadroTitulo = new JPanel();
    quadroTitulo.setBackground(Color.WHITE);
    
    
    //INSERE UM TITULO NO QUADRO DO TITULO
    titulo = new JLabel("Mensagens");
    titulo.setFont(new Font("Chiller", Font.BOLD,30));
    quadroTitulo.setBounds(5, 10, 795, 40);
    quadroTitulo.add(titulo);
    quadro.add(quadroTitulo);
    
    // FUNDO DOS TITULOS DO CORPO DA MENSAGEM
    quadroTituloCorpo = new JPanel();
    quadroTituloCorpo.setLayout(null);
    Rectangle retanguloTituloCorpo = new Rectangle();
    retanguloTituloCorpo.setLocation(0, 60);
    retanguloTituloCorpo.setSize(800, 30);
    quadroTituloCorpo.setBounds(retanguloTituloCorpo);
    quadroTituloCorpo.setBackground(Color.GRAY);
    
   // TITULOS DO CORPO DA MENSAGEM
    tituloUsuario = new JLabel("Usuario");
    tituloUsuario.setFont(new Font("Verdana",Font.BOLD,12));
    tituloUsuario.setForeground(Color.WHITE);
    tituloUsuario.setLayout(null);
    tituloUsuario.setBounds(80, 0, 150, 20);
    quadroTituloCorpo.add(tituloUsuario);
    
    tituloMsg = new JLabel("Mensagens");
    tituloMsg.setFont(new Font("Verdana",Font.BOLD,12));
    tituloMsg.setForeground(Color.WHITE);
    tituloMsg.setLayout(null);
    tituloMsg.setBounds(450, 0, 150, 20);
    quadroTituloCorpo.add(tituloMsg);
    
    quadro.add(quadroTituloCorpo);

//-------------------------------------------------------------------------------//

    //CORPO DO FÓRUM

    
    JPanel quadroCorpo = new JPanel();
    quadroCorpo.setLayout(null);
    quadroCorpo.getAutoscrolls();
    Rectangle retanguloCorpo = new Rectangle();
    retanguloCorpo.setLocation(0,100);
    retanguloCorpo.setSize(800, 400);
    quadroCorpo.setBackground(Color.WHITE);
    Border bordaCorpo = BorderFactory.createLineBorder(Color.BLACK); 
    quadroCorpo.setBounds(retanguloCorpo);
    quadroCorpo.setBorder(bordaCorpo);
    /*         
        mainScroll = new JScrollPane(quadroCorpo);
        mainScroll.setBounds(retanguloCorpo);
        mainScroll.setBorder(bordaCorpo);
    */

//-----------------------------------------------------------------------------//
//INSERE O FUNDO QUE DEFINE CADA USUARIO

    fundoUsu = new JPanel();
    fundoUsu.setLayout(null);
    fundoUsu.setLocation(10,10);
    fundoUsu.setSize(780,130);
    fundoUsu.setBackground(Color.LIGHT_GRAY);
    Border bordaFundoUsu = BorderFactory.createLineBorder(Color.BLACK); 
    fundoUsu.setBorder(bordaFundoUsu);
   
    //INSERE O FUNDO DO NOME DO USUARIO QUE ENVIOU A MENSAGEM
    quadroNomeUsuario = new JPanel();
    quadroNomeUsuario.setLayout(null);
    quadroNomeUsuario.setLocation(20,10);
    quadroNomeUsuario.setSize(200,50);
    quadroNomeUsuario.setBackground(Color.GRAY);
    Border bordaQuadroNomeUsuario = BorderFactory.createLineBorder(Color.BLACK); 
    quadroNomeUsuario.setBorder(bordaQuadroNomeUsuario);
    fundoUsu.add(quadroNomeUsuario);
    
  //INSERE O NOME DO USUARIO QUE ENVIOU A MENSAGEM
    nomeUsu = new JLabel("Frederico");
    nomeUsu.setLayout(null);
    nomeUsu.setFont(new Font("Verdana",Font.CENTER_BASELINE,15));
    nomeUsu.setForeground(Color.WHITE);
    nomeUsu.setBounds(60, 5, 200, 20);
    quadroNomeUsuario.add(nomeUsu);
    
  // INSERE O TIPO DO USUARIO QUE ENVIOU A MENSAGEM
  
    tipoUsu = new JLabel("Professor");
    tipoUsu.setLayout(null);
    tipoUsu.setFont(new Font("Verdana",Font.CENTER_BASELINE,10));
    tipoUsu.setForeground(Color.WHITE);
    tipoUsu.setBounds(80, 25, 200, 20);
    quadroNomeUsuario.add(tipoUsu);
    
  //INSERE O FUNDO DO CORPO DA MENSAGEM
    
    quadroCorpoUsuario = new JPanel();
    textCorpoUsuario = new JTextArea();
    textCorpoUsuario.setLayout(null);
    textCorpoUsuario.setLineWrap(true);
    textCorpoUsuario.setWrapStyleWord(true);
    textCorpoUsuario.setEditable(false);
    textCorpoUsuario.setBackground(Color.GRAY);
    Border bordaQuadroCorpoUsuario = BorderFactory.createLineBorder(Color.WHITE); 
    textCorpoUsuario.setBorder(bordaQuadroCorpoUsuario);
    textCorpoUsuario.setText("blablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablabla");
    textCorpoUsuario.setForeground(Color.WHITE);
    textCorpoUsuario.setLocation(240,10);
    textCorpoUsuario.setSize(500,100);
    quadroCorpoUsuario.add(textCorpoUsuario);
    quadroCorpoUsuario.setBackground(Color.GRAY);
    barraRolagemCaixaMsg = new JScrollPane(quadroCorpoUsuario);
    barraRolagemCaixaMsg.setLocation(240,10);
    barraRolagemCaixaMsg.setSize(500,100);
     
    fundoUsu.add(barraRolagemCaixaMsg);
    
    quadroCorpo.add(fundoUsu);
  //mainScroll.add(fundoUsu);

/##################### SEGUNDA MENSAGEM ###############################/

    //INSERE O FUNDO QUE DEFINE CADA USUARIO
    
    fundoUsu2 = new JPanel();
    fundoUsu2.setLayout(null);
    fundoUsu2.setLocation(10,150);
    fundoUsu2.setSize(780,130);
    fundoUsu2.setBackground(Color.LIGHT_GRAY);
    Border bordaFundoUsu2 = BorderFactory.createLineBorder(Color.BLACK); 
    fundoUsu2.setBorder(bordaFundoUsu2);

    //INSERE O FUNDO DO NOME DO USUARIO QUE ENVIOU A MENSAGEM
    quadroNomeUsuario2 = new JPanel();
    quadroNomeUsuario2.setLayout(null);
    quadroNomeUsuario2.setLocation(20,10);
    quadroNomeUsuario2.setSize(200,50);
    quadroNomeUsuario2.setBackground(Color.GRAY);
    Border bordaQuadroNomeUsuario2 = BorderFactory.createLineBorder(Color.BLACK); 
    quadroNomeUsuario2.setBorder(bordaQuadroNomeUsuario2);
    fundoUsu2.add(quadroNomeUsuario2);
    
  //INSERE O NOME DO USUARIO QUE ENVIOU A MENSAGEM
    nomeUsu2 = new JLabel("Diego Gay");
    nomeUsu2.setLayout(null);
    nomeUsu2.setFont(new Font("Verdana",Font.CENTER_BASELINE,15));
    nomeUsu2.setForeground(Color.WHITE);
    nomeUsu2.setBounds(60, 5, 200, 20);
    quadroNomeUsuario2.add(nomeUsu2);
    
  // INSERE O TIPO DO USUARIO QUE ENVIOU A MENSAGEM
  
    tipoUsu2 = new JLabel("Aluno");
    tipoUsu2.setLayout(null);
    tipoUsu2.setFont(new Font("Verdana",Font.CENTER_BASELINE,10));
    tipoUsu2.setForeground(Color.WHITE);
    tipoUsu2.setBounds(80, 25, 200, 20);
    quadroNomeUsuario2.add(tipoUsu2);

//INSERE O FUNDO DO CORPO DA MENSAGEM

    quadroCorpoUsuario2 = new JPanel();
    textCorpoUsuario2 = new JTextArea();
    textCorpoUsuario2.setLayout(null);
    textCorpoUsuario2.setLineWrap(true);
    textCorpoUsuario2.setWrapStyleWord(true);
    textCorpoUsuario2.setEditable(false);
    textCorpoUsuario2.setBackground(Color.GRAY);
    Border bordaQuadroCorpoUsuario2 = BorderFactory.createLineBorder(Color.WHITE); 
    textCorpoUsuario2.setBorder(bordaQuadroCorpoUsuario2);
    textCorpoUsuario2.setText("blablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablabla");
    textCorpoUsuario2.setForeground(Color.WHITE);
    textCorpoUsuario2.setLocation(240,10);
    textCorpoUsuario2.setSize(500,100);
    quadroCorpoUsuario2.add(textCorpoUsuario2);
    quadroCorpoUsuario2.setBackground(Color.GRAY);
    barraRolagemCaixaMsg2 = new JScrollPane(quadroCorpoUsuario2);
    barraRolagemCaixaMsg2.setLocation(240,10);
    barraRolagemCaixaMsg2.setSize(500,100);
     
    fundoUsu2.add(barraRolagemCaixaMsg2);

    quadroCorpo.add(fundoUsu2);
  //mainScroll.add(fundoUsu2);

//################## Terceira Mensagem ####################################//

//INSERE O FUNDO QUE DEFINE CADA USUARIO

    fundoUsu3 = new JPanel();
    fundoUsu3.setLayout(null);
    fundoUsu3.setLocation(10,290);
    fundoUsu3.setSize(780,130);
    fundoUsu3.setBackground(Color.LIGHT_GRAY);
    Border bordaFundoUsu3 = BorderFactory.createLineBorder(Color.BLACK); 
    fundoUsu3.setBorder(bordaFundoUsu3);
   
    //INSERE O FUNDO DO NOME DO USUARIO QUE ENVIOU A MENSAGEM
    quadroNomeUsuario3 = new JPanel();
    quadroNomeUsuario3.setLayout(null);
    quadroNomeUsuario3.setLocation(20,10);
    quadroNomeUsuario3.setSize(200,50);
    quadroNomeUsuario3.setBackground(Color.GRAY);
    Border bordaQuadroNomeUsuario3 = BorderFactory.createLineBorder(Color.BLACK); 
    quadroNomeUsuario3.setBorder(bordaQuadroNomeUsuario3);
    fundoUsu3.add(quadroNomeUsuario3);
    
  //INSERE O NOME DO USUARIO QUE ENVIOU A MENSAGEM
    nomeUsu3 = new JLabel("Frederico");
    nomeUsu3.setLayout(null);
    nomeUsu3.setFont(new Font("Verdana",Font.CENTER_BASELINE,15));
    nomeUsu3.setForeground(Color.WHITE);
    nomeUsu3.setBounds(60, 5, 200, 20);
    quadroNomeUsuario3.add(nomeUsu3);
    
  // INSERE O TIPO DO USUARIO QUE ENVIOU A MENSAGEM
  
    tipoUsu3 = new JLabel("Professor");
    tipoUsu3.setLayout(null);
    tipoUsu3.setFont(new Font("Verdana",Font.CENTER_BASELINE,10));
    tipoUsu3.setForeground(Color.WHITE);
    tipoUsu3.setBounds(80, 25, 200, 20);
    quadroNomeUsuario3.add(tipoUsu3);

//INSERE O FUNDO DO CORPO DA MENSAGEM

    quadroCorpoUsuario3 = new JPanel();
    textCorpoUsuario3 = new JTextArea();
    textCorpoUsuario3.setLayout(null);
    textCorpoUsuario3.setLineWrap(true);
    textCorpoUsuario3.setWrapStyleWord(true);
    textCorpoUsuario3.setEditable(false);
    textCorpoUsuario3.setBackground(Color.GRAY);
    Border bordaQuadroCorpoUsuario3 = BorderFactory.createLineBorder(Color.WHITE); 
    textCorpoUsuario3.setBorder(bordaQuadroCorpoUsuario3);
    textCorpoUsuario3.setText("blablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablablablabla" +
    "blablablablablablablablablablablablablablablablablablablablablablabla");
    textCorpoUsuario3.setForeground(Color.WHITE);
    textCorpoUsuario3.setLocation(240,10);
    textCorpoUsuario3.setSize(500,100);
    quadroCorpoUsuario3.add(textCorpoUsuario3);
    quadroCorpoUsuario3.setBackground(Color.GRAY);
    barraRolagemCaixaMsg3 = new JScrollPane(quadroCorpoUsuario3);
    barraRolagemCaixaMsg3.setLocation(240,10);
    barraRolagemCaixaMsg3.setSize(500,100);
     
    fundoUsu3.add(barraRolagemCaixaMsg3);
    
    quadroCorpo.add(fundoUsu3);
    //mainScroll.add(fundoUsu3);

//-----------------------------------------------------------------------------//
//RODAPE DO FÓRUM
quadroRodape = new JPanel();
quadroRodape.setLayout(null);
Rectangle retanguloRodape = new Rectangle();
retanguloRodape.setLocation(0,505);
retanguloRodape.setSize(800, 50);
quadroRodape.setBounds(retanguloRodape);
quadroRodape.setBackground(Color.WHITE);
btExcluir = new JButton(“Responder o tópico”);
btExcluir.setFont(new Font(“Verdana”,Font.ITALIC,12));
btExcluir.setLayout(null);
btExcluir.setSize(50, 0);
btExcluir.setBounds(5, 5, 150, 20);
quadroRodape.add(btExcluir);

//---------------------------- Adicionar o rodape e o corpo no container-------------------------------//

    quadro.add(quadroRodape);
    
    quadro.add(quadroCorpo);
  //quadro.add(mainScroll);
    mainFrame.setLocation(100,100);
    mainFrame.setVisible(true);
    
}    




public static void main(String args[]){
    
    //chama o construtor da classe
	layoutTopicosMensagens topicosEspecificos = new layoutTopicosMensagens();
}    

} [/code]

Cara, eu não sei resolver teu problema, mas sei que você não precisa importar assim:

import javax.swing.BorderFactory;   
import javax.swing.JButton;   
import javax.swing.JFrame;   
import javax.swing.JLabel;   
import javax.swing.JMenu;   
import javax.swing.JMenuBar;   
import javax.swing.JPanel;   
import javax.swing.JScrollBar;   
import javax.swing.JScrollPane;   
import javax.swing.JTable;   
import javax.swing.JTextArea;   
import javax.swing.border.Border;   

Basta:

import javax.swing.*;
import javax.swing.border.*;

que vai fazer a mesmíssima coisa que aquelas truculentas 12 linhas de código que você usou.

[quote=bruno_7317]Cara, eu não sei resolver teu problema, mas sei que você não precisa importar assim:

import javax.swing.BorderFactory;   
import javax.swing.JButton;   
import javax.swing.JFrame;   
import javax.swing.JLabel;   
import javax.swing.JMenu;   
import javax.swing.JMenuBar;   
import javax.swing.JPanel;   
import javax.swing.JScrollBar;   
import javax.swing.JScrollPane;   
import javax.swing.JTable;   
import javax.swing.JTextArea;   
import javax.swing.border.Border;   

Basta:

import javax.swing.*;
import javax.swing.border.*;

que vai fazer a mesmíssima coisa que aquelas truculentas 12 linhas de código que você usou.[/quote]

Aquelas truculentas 12 linhas são a maneira correta de importar…

Importando apenas o que ele vai usar e mais nada…