JScrollPane: não aparece a barra de rolagem

O problema é o seguinte: eu tenho uma tela com vários botões, que pode variar a quantidade de acordo com o usuário. Quando o usuario tem uma quantidade grande de botões em sua tela, esse botões não vão caber nesse tela, pois eles extrapolam a area da tela. Então eu decidi usar o JScrollPane, adicionando os botões nele, mas aí não aparece a barra de rolagem. O que faz com que algums botões fiquem mostrando apenas parte deles e outros nem aparecem.

Já tentei adicionar esses botões diretamente ao JScrollPane e não funcionou. Já tentei adicionar esses botões em um JPanel e depois adicionar esse JPanel ao ScrollPane e não funcionou.

Quem puder ajuda aí, muito obrigado.

vc colocou o JScrollPane dentro do painel?
qr dizer, c deu um painelQualquer.add(jScrollPane);??

coloca um pedaço do codigo…
=)

Olha eu não coloquei o JScrollpane num panel. O que eu fiz foi o seguinte:

JScrollPane jp=new JScrollPane;
while(o usuario tiver botões para adicionar){
jp.add(new botãoUsuario());
}
Frame.add(jp);

isso é um resumo do código.

E eu também tentei fazer assim:

JScrollPane jp=new JScrollPane();
JPane p=new JPane();
while(o usuario tiver botões para adicionar){
p.add(new botãoUsuario());
}
jp.add§;
Frame.add(jp);

Mas também não deu certo.

Quando vc for postar codigo, coloque-o entre as tags [ code]
e [ /code], assim ele ficará
endentado.

Boa tarde galera do guj!

Estou com um problema parecido.
eu montei a tela, porém mesmo que os itens fique para fora do meu JScrollPane ele não desce a barra de rolagem, e a mesma não aparece também.
já tentei:

pane.add(scrollPane);
scrollPane.add(pane);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.Autoscroll(true);
pane.Autoscroll(true);

nada resolve.

Podem me ajudar?

segue abaixo meu código:

import java.awt.BorderLayout;


public class Scroll extends JFrame {

	private JPanel contentPane;
	
	

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Scroll frame = new Scroll();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Scroll() {
//		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setAutoscrolls(true);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setAutoscrolls(true);
		panel.setBounds(0, 0, 442, 273);
		contentPane.add(panel);
		panel.setLayout(null);
		
		
		
		JLabel lblCliente = new JLabel();
		lblCliente.setBounds(20, 30, 40, 22);
		lblCliente.setText("Cliente");
		
		JTextField txtNome = new JTextField();
		txtNome.setBounds(70, 30, 240, 22);
		
		JLabel lblEnd = new JLabel();
		lblEnd.setBounds(20, 60, 70, 22);
		lblEnd.setText("Endereço");
		
		JTextField txtRua = new JTextField();
		txtRua.setBounds(80, 60, 240, 22);
		
		JLabel lblEndNum = new JLabel();
		lblEndNum.setBounds(330, 60, 70, 22);
		lblEndNum.setText("Número");
		
		JTextField txtNum = new JTextField();
		txtNum.setBounds(380, 60, 30, 22);
		
		JLabel lblDescriEquip = new JLabel();
		lblDescriEquip.setBounds(20, 90, 180, 22);
		lblDescriEquip.setText("Descriminação do Equipamento");
		
		JEditorPane edtpDescriEquip = new JEditorPane();
		edtpDescriEquip.setBounds(20, 120, 270, 115);
		
		JLabel lblDescriServi = new JLabel();
		lblDescriServi.setBounds(20, 240, 180, 22);
		lblDescriServi.setText("Descriminação do Serviço");
		
		JEditorPane edtpDescriServi = new JEditorPane();
		edtpDescriServi.setBounds(20, 270, 270, 115);
		
		JButton btn = new JButton();
		btn.setBounds(320, 220, 90, 25);
		btn.setText("Confirma");
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 11, 422, 251);
		scrollPane.setAutoscrolls(true);
		scrollPane.setLayout(null);
		scrollPane.add(btn);
		scrollPane.add(txtNome);
		scrollPane.add(lblCliente);
		scrollPane.add(lblEnd);
		scrollPane.add(txtRua);
		scrollPane.add(lblEndNum);
		scrollPane.add(txtNum);
		scrollPane.add(lblDescriEquip);
		scrollPane.add(edtpDescriEquip);
		scrollPane.add(lblDescriServi);
		scrollPane.add(edtpDescriServi);
		panel.add(scrollPane);
	}
}

A tela é basicamente isso, como posso fazer para o JScrollPane “funcionar”?

abs!

Defina tamanhos para os scrolls. Exemplo:

JScrollPane scroll = new JScrollPane(description);
scroll.setMinimumSize(new Dimension(500, 200));
scroll.setMaximumSize(new Dimension(720, 200));
scroll.setPreferredSize(new Dimension(720, 200));

Vc fez isso


scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);