Como colocar ScrollBar?

Como faço para colocar ScrollBar no código abaixo, já fiz várias tentativas e nenhuma deu certo.

package br.com.people;

//bibliotecas
import javax.swing.;
import java.awt.
;
import java.awt.event.*;
import javax.swing.text.MaskFormatter;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

//classe exBlog extendida de JFrame, implementando ActionListener
public class Formulario extends JFrame implements ActionListener{

//Variáveis
private JLabel lblEst,lblNome,lblSex,lblNiv,lblCPF,lblInt;
private JTextField texNome;
private JFormattedTextField texCPF;
private ButtonGroup gruSex;
private JRadioButton radMasc, radFem;
private JComboBox cmbNiv;
private JCheckBox chkIng, chkMat, chkPro, chkLog;
private JButton btnGrav;
private JPanel panel;
private JTextArea txtArea;

//Iniciando o Formulario
public Formulario(){
setLayout(null);

//Label Estudante
lblEst = new JLabel("Estudante: ");
lblEst.setForeground(Color.BLUE);
lblEst.setBounds(120,5,100,20);
add(lblEst);

//Label Nome
lblNome = new JLabel("Nome: ");
lblNome.setBounds(10,35,100,20);
lblNome.setForeground(Color.WHITE);
add(lblNome);

//Text Nome
texNome = new JTextField("");
texNome.setBounds(50,35,250,20);
add(texNome);

//Label Sexo
lblSex = new JLabel("Sexo: ");
lblSex.setBounds(10,65,100,20);
lblSex.setForeground(Color.WHITE);
add(lblSex);

//Radio Masculino
radMasc = new JRadioButton(“Masculino”);
radMasc.setBounds(60,65,120,20);
radMasc.setForeground(Color.BLUE);
radMasc.setBackground(Color.RED);
radMasc.setSelected(true);

//Radio Feminino
radFem = new JRadioButton(“Feminino”);
radFem.setBounds(200,65,120,20);
radFem.setForeground(Color.BLUE);
radFem.setBackground(Color.RED);

//Grupo de Botões
gruSex = new ButtonGroup();
gruSex.add(radMasc);
gruSex.add(radFem);
add(radMasc);
add(radFem);

//Label Nível
lblNiv = new JLabel("Nível Estudantil: ");
lblNiv.setBounds(10,95,200,20);
lblNiv.setForeground(Color.WHITE);
add(lblNiv);

//Combo Nível
cmbNiv = new JComboBox();
cmbNiv.setBackground(Color.WHITE);
cmbNiv.addItem(“Básico Completo”);
cmbNiv.addItem(“Médio Completo”);
cmbNiv.addItem(“Superior Completo”);
cmbNiv.addItem(“Doutorado e/ou Mestrado Completo”);
cmbNiv.setBounds(10,125,250,20);
add(cmbNiv);

//Label CPF
lblCPF = new JLabel("CPF: ");
lblCPF.setBounds(10,155,100,20);
lblCPF.setForeground(Color.WHITE);
add(lblCPF);

//Campo com máscara - CPF
try {
MaskFormatter mk= new MaskFormatter("###.###.###-##");
mk.setPlaceholderCharacter(’’);
/* ou, pode setar os caracteres que irá receber
MaskFormatter mk= new MaskFormatter("***.***.*-");
mk.setPlaceholderCharacter(’
’);
mk.setValidCharacters(“ABC0123456.”);
*/
texCPF = new JFormattedTextField(mk);
texCPF.setBounds(50,155,100,20);
add(texCPF);
}
catch(Exception e){}

//Label Interesses
lblInt = new JLabel("Interesses: ");
lblInt.setBounds(10,185,100,20);
lblInt.setForeground(Color.WHITE);
add(lblInt);

//Check Inglês
chkIng = new JCheckBox(“Inglês”);
chkIng.setBounds(10,205,120,20);
chkIng.setForeground(Color.BLUE);
chkIng.setBackground(Color.RED);
add(chkIng);

//Check Matemática
chkMat = new JCheckBox(“Matemática”);
chkMat.setBounds(170,205,120,20);
chkMat.setForeground(Color.BLUE);
chkMat.setBackground(Color.RED);
add(chkMat);

//Check Programação
chkPro = new JCheckBox(“Programação”);
chkPro.setBounds(10,235,120,20);
chkPro.setForeground(Color.BLUE);
chkPro.setBackground(Color.RED);
add(chkPro);

//Check Lógica
chkLog = new JCheckBox(“Lógica”);
chkLog.setBounds(170,235,120,20);
chkLog.setForeground(Color.BLUE);
chkLog.setBackground(Color.RED);
add(chkLog);

//Botão Ok
btnGrav = new JButton(“Ok”);
btnGrav.setBounds(110,285,120,40);
btnGrav.setMnemonic(‘O’);
btnGrav.setToolTipText(“Ok…”);
btnGrav.setForeground(Color.RED);
btnGrav.addActionListener(this);
add(btnGrav);
}

//Função responsável pelos cliques
public void actionPerformed(ActionEvent acesso){
String sSexo="";
String sNivel="";
String sExec="";
Boolean bChave=true;

//se o acesso for via botão gravar-ok
if(acesso.getSource() == btnGrav){
//pegando o nivel de escolaridade
sNivel=cmbNiv.getSelectedItem().toString();
//verificando os radios
if(radFem.isSelected())
sSexo=“F”;
if(radMasc.isSelected())
sSexo=“M”;

Calendar c = Calendar.getInstance();

//montando a frase que será mostrada
sExec="Nome = '"+texNome.getText()+"'\n"+
      "Sexo = '"+sSexo+"'\n"+
      "Nivel= '"+sNivel+"'\n"+
      "CPF  = '"+texCPF.getText()+"'\n"+
      "-----------------------------\n"+
      "Interesses:\n"+
      "Inglês? "+chkIng.isSelected()+"\n"+
      "Matemática? "+chkMat.isSelected()+"\n"+
      "Programação? "+chkPro.isSelected()+"\n"+
      "Lógica? "+chkLog.isSelected()+"\n"+"\n"+
      //c+"\n"+"\n"+
      "Data: "+c.get(Calendar.DAY_OF_MONTH) + "/" + c.get(Calendar.MONTH) + "/" + c.get(Calendar.YEAR)+"\n"+
      "Hora: "+c.get(Calendar.HOUR) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);

//mostrando a frase
JOptionPane.showMessageDialog(null,sExec,"Atenção",1);
    
//se a chave for verdadeira, chama função limpaDados
if(bChave){
  limpaDados();
}
//Muda o foco do componente
texNome.grabFocus();

}
}

//Função principal que irá criar a janela
public static void main(String arg[])
{
Formulario ex = new Formulario();
ex.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ex.getContentPane().setBackground(Color.RED);
//ícone na mesma pasta do código fonte
ex.setIconImage(new ImageIcon(“ico.png”).getImage());
ex.setTitle(“Estudantes…”);
//tira o maximizar e alteração do tamanho
ex.setResizable(true);
ex.setSize(350,300);
ex.setVisible(true);
ex.setLocationRelativeTo(null);
}

//função que limpa o programa e deixa ele como executado da primeira vez
private void limpaDados(){
texNome.setText("");
texCPF.setText("");
radMasc.setSelected(true);
chkIng.setSelected(false);
chkMat.setSelected(false);
chkPro.setSelected(false);
chkLog.setSelected(false);
cmbNiv.setSelectedIndex(0);
}

}

Olá tudo bem.

so uma dica, quando for por código vc deve coloca-lo entre as tags [code"][/code"] (sem as aspas dentro do conchetes) fica mais facil para quem vai ver o código.

Vc não pode colocar uma scrollbar em um JFrame pois o mesmo é só a moldura, vc só consegui colocar barra de rolagem em componentes que podem ser adicionado ao JFrame com JPanel, JTextArea…, .
No seu código vc tem um JPanel panel mais vc ñ esta usado ele, vc poderia fazer o seguinte: Adicionar os seus componentes no seu JPanel e depois adiciona-lo a um JScrollPane e depois adicionar o JScrollPane através do metodo "getContentPane().add(seuJScroolPanel) do JFrame.

A outra coisa também, é q no inicio do seu codigo vc define o layout como null, “setLayout(null)” isso não pode ser feito vai ter que usar um Gerenciador de Layout, e consequentemente terá que reorganizar os seu componentes da tela. Segue um exemplo de código abaixo do q vc pode fazer.

.
.
.
//setLayout(null) essa linha vc comenta

panel = new JPanel();
panel.setBackground(Color.RED);
panel.setLayout(new FlowLayout()); // usar um gerenciador de layout de sua prefegencia ou deixar o padrão não definir como "null"
panel.setPreferredSize(new DimensionUIResource(200, 200)); //tamanho que seu JPanel deve ter preferencialmente

//aqui vc adiciona os componentes ao JPanel

JScrollPane scroll = new JScrollPane();
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);  
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setViewportView(panel);
getContentPane().add(scroll);

.
.
.

Meu caro, muito obrigado pela dica, fiz o que orientou e quase funcionou, o scrollbar foi inserido, acontece que quando uso ele acaba limpando a tela.
Executa o código abaixo para você entender o que estou falando.

package br.com.people;

import java.awt.BorderLayout;  
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.*;  
import javax.swing.plaf.DimensionUIResource;
import javax.swing.text.MaskFormatter;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class Painel extends JFrame  implements ActionListener  
{  
	private JPanel panel;
    private JLabel lblEst,lblNome,lblSex,lblNiv,lblCPF,lblInt;
    private JTextField texNome;
    private JFormattedTextField texCPF;
    private ButtonGroup gruSex;
    private JRadioButton radMasc, radFem;
    private JComboBox cmbNiv;
    private JCheckBox chkIng, chkMat, chkPro, chkLog;
    private JButton btnGrav;
    
    public void criaJanela()  
    {   
        panel = new JPanel();
        panel.setPreferredSize(new DimensionUIResource(450, 400));
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
        
        //Label Estudante
        lblEst = new JLabel("Estudante: ");
        lblEst.setForeground(Color.BLUE);
        lblEst.setBounds(120,5,100,20);
        add(lblEst);
        
        //Label Nome
        lblNome = new JLabel("Nome: ");
        lblNome.setForeground(Color.BLUE);
        lblNome.setBounds(10,35,100,20);
        add(lblNome);

        //Text Nome
        texNome = new JTextField("");
        texNome.setBounds(50,35,250,20);
        add(texNome);

        //Label Sexo
        lblSex = new JLabel("Sexo: ");
        lblSex.setBounds(10,65,100,20);
        lblSex.setForeground(Color.BLUE);
        add(lblSex);

        //Radio Masculino
        radMasc = new JRadioButton("Masculino");
        radMasc.setBounds(60,65,120,20);
        radMasc.setForeground(Color.BLUE);
        radMasc.setBackground(Color.RED);
        radMasc.setSelected(true);

        //Radio Feminino
        radFem = new JRadioButton("Feminino");
        radFem.setBounds(200,65,120,20);
        radFem.setForeground(Color.BLUE);
        radFem.setBackground(Color.RED);

        //Grupo de Botões
        gruSex = new ButtonGroup();
        gruSex.add(radMasc);
        gruSex.add(radFem);
        add(radMasc);
        add(radFem);

        //Label Nível
        lblNiv = new JLabel("Nível Estudantil: ");
        lblNiv.setBounds(10,95,200,20);
        lblNiv.setForeground(Color.BLUE);
        add(lblNiv);

        //Combo Nível
        cmbNiv = new JComboBox();
        cmbNiv.setBackground(Color.WHITE);
        cmbNiv.addItem("Básico Completo");
        cmbNiv.addItem("Médio Completo");
        cmbNiv.addItem("Superior Completo");
        cmbNiv.addItem("Doutorado e/ou Mestrado Completo");
        cmbNiv.setBounds(10,125,250,20);
        add(cmbNiv);

        //Label CPF
        lblCPF = new JLabel("CPF: ");
        lblCPF.setBounds(10,155,100,20);
        lblCPF.setForeground(Color.BLUE);
        add(lblCPF);

        //Campo com máscara - CPF
        try {
          MaskFormatter mk= new MaskFormatter("###.###.###-##");       
          mk.setPlaceholderCharacter('_');
          /*  ou, pode setar os caracteres que irá receber 
            MaskFormatter mk= new MaskFormatter("***.***.***-**");
            mk.setPlaceholderCharacter('_');
            mk.setValidCharacters("ABC0123456.");
          */
          texCPF = new JFormattedTextField(mk); 
          texCPF.setBounds(50,155,100,20);
          add(texCPF);
        }
        catch(Exception e){}

        //Label Interesses
        lblInt = new JLabel("Interesses: ");
        lblInt.setBounds(10,185,100,20);
        lblInt.setForeground(Color.BLUE);
        add(lblInt);

        //Check Inglês
        chkIng = new JCheckBox("Inglês");
        chkIng.setBounds(10,205,120,20);
        chkIng.setForeground(Color.BLUE);
        chkIng.setBackground(Color.RED);
        add(chkIng);

        //Check Matemática
        chkMat = new JCheckBox("Matemática");
        chkMat.setBounds(170,205,120,20);
        chkMat.setForeground(Color.BLUE);
        chkMat.setBackground(Color.RED);
        add(chkMat);

        //Check Programação
        chkPro = new JCheckBox("Programação");
        chkPro.setBounds(10,235,120,20);
        chkPro.setForeground(Color.BLUE);
        chkPro.setBackground(Color.RED);
        add(chkPro);

        //Check Lógica
        chkLog = new JCheckBox("Lógica");
        chkLog.setBounds(170,235,120,20);
        chkLog.setForeground(Color.BLUE);
        chkLog.setBackground(Color.RED);
        add(chkLog);

        //Botão Ok
        btnGrav = new JButton("Ok");
        btnGrav.setBounds(110,285,120,40);
        btnGrav.setMnemonic('O');
        btnGrav.setToolTipText("Ok...");
        btnGrav.setForeground(Color.RED);
        btnGrav.addActionListener(this);
        add(btnGrav);        
        
        JScrollPane scroll = new JScrollPane();  
        scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);    
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);  
        scroll.setViewportView(panel);  
        getContentPane().add(scroll, BorderLayout.CENTER);
        
    }  
    
  //Função responsável pelos cliques
    public void actionPerformed(ActionEvent acesso){
      String  sSexo="";
      String  sNivel="";
      String  sExec="";
      Boolean bChave=true;
        
      //se o acesso for via botão gravar-ok
      if(acesso.getSource() == btnGrav){
        //pegando o nivel de escolaridade
        sNivel=cmbNiv.getSelectedItem().toString();
        //verificando os radios
        if(radFem.isSelected())
          sSexo="F";
        if(radMasc.isSelected())
          sSexo="M";

        Calendar c = Calendar.getInstance();

        //montando a frase que será mostrada
        sExec="Nome = '"+texNome.getText()+"'\n"+
              "Sexo = '"+sSexo+"'\n"+
              "Nivel= '"+sNivel+"'\n"+
              "CPF  = '"+texCPF.getText()+"'\n"+
              "-----------------------------\n"+
              "Interesses:\n"+
              "Inglês? "+chkIng.isSelected()+"\n"+
              "Matemática? "+chkMat.isSelected()+"\n"+
              "Programação? "+chkPro.isSelected()+"\n"+
              "Lógica? "+chkLog.isSelected()+"\n"+"\n"+
              //c+"\n"+"\n"+
              "Data: "+c.get(Calendar.DAY_OF_MONTH) + "/" + c.get(Calendar.MONTH) + "/" + c.get(Calendar.YEAR)+"\n"+
              "Hora: "+c.get(Calendar.HOUR) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);

        //mostrando a frase
        JOptionPane.showMessageDialog(null,sExec,"Atenção",1);
            
        //se a chave for verdadeira, chama função limpaDados
        if(bChave){
          limpaDados();
        }
        //Muda o foco do componente
        texNome.grabFocus();
      }
    }

  public static void main(String args[])  
  {  
      Painel s = new Painel();  
      s.criaJanela();  
      s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      s.getContentPane().setBackground(Color.RED);
      //ícone na mesma pasta do código fonte
      s.setIconImage(new ImageIcon("ico.png").getImage());
      s.setTitle("Estudantes...");
      //tira o maximizar e alteração do tamanho
      s.setResizable(true);
      s.setSize(350,400);
      s.setVisible(true);
      s.setLocationRelativeTo(null);
      }

    //função que limpa o programa e deixa ele como executado da primeira vez
    private void limpaDados(){
      texNome.setText("");
      texCPF.setText("");
      radMasc.setSelected(true);
      chkIng.setSelected(false);
      chkMat.setSelected(false);
      chkPro.setSelected(false);
      chkLog.setSelected(false);
      cmbNiv.setSelectedIndex(0);
    }
}

Não executei mas o erro e q vc não esta adicionando os seu componentes no seu “panel” e sim no “JFrame” com o add(lblEst)

 lblEst = new JLabel("Estudante: ");  
lblEst.setForeground(Color.BLUE);  
lblEst.setBounds(120,5,100,20);  
add(lblEst);  

quando no caso deveria ser

panel.add(lblEst);

para todos os seu componentes pois todos pelo q vi rapidamente estão sendo adicionados no JFrame.

Mas tbm o problema não vai ser so esse, como falei no outro poste vc terá que reorganizar todos os componentes pois vc n esta definindo o layout com null e n pode, para usar a o JScroolPane.