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]