Pergunta

Eu tenho um JScrollPane e quando carrego meu aplicativo, a barra fica em cima de um dos meus botões.O que eu gostaria de fazer é adicionar algum espaço ao lado do meu botão para que a barra de rolagem passe sobre o espaço e não sobre o meu botão.

Código de exemplo que tentei:

JPanel eButton = new JPanel(new BorderLayout());
JPanel spaceFiller = new JPanel();
spaceFiller.setSize(30, 10);
eButton.add(editButton, BorderLayout.EAST);
eButton.add(spaceFiller, BorderLayout.WEST);

O problema com esse código é que ele ainda sobrescreve meu botão e nenhum espaço é adicionado.Qual é a melhor maneira de garantir que o JScrollPane não se sobreponha aos componentes do meu JFrame?

Obrigado

Foi útil?

Solução

Para garantir que o tamanho do JPanel seja respeitado você deve usar setPreferredSize() em vez de setSize().

Outras dicas

No seu código de exemplo, você não inverteu LESTE e OESTE?Não deveria ser assim:

eButton.add(editButton, BorderLayout.WEST); 
eButton.add(spaceFiller, BorderLayout.EAST); 

Isso faria mais sentido, já que a barra de rolagem aparecerá no lado direito (LESTE).

Observe que a solução que você sugere, embora possa funcionar (depois de trocar EAST e WEST), parece mais um hack do que uma solução real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top