Padding JPanel em Java


107

Tenho uma pergunta sobre formatação para meu aplicativo Java Swing. Deve ser bastante simples, mas estou tendo dificuldade em encontrar qualquer ajuda (todos os tópicos parecem ser sobre a remoção de qualquer preenchimento padrão no JPanel). O texto em meus vários JPanels envolve as laterais e a parte superior, tocando as bordas coloridas: como posso adicionar preenchimento? Obrigado.

Respostas:


234

Defina um em EmptyBordertorno de seu JPanel.
Exemplo:

JPanel p =new JPanel();
p.setBorder(new EmptyBorder(10, 10, 10, 10));

45
ou você pode ter algum preenchimento extra em p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
torno da

O que acontece quando a janela é redimensionada? Esta solução não é boa, pois não?
Andrew S,

@Synox Legend, de fato! Observe que você pode colocar EmptyBorder como último parâmetro para preenchimento interno
Hunter S

3

Quando você precisa de preenchimento dentro do JPanelgeral, você adiciona preenchimento com o gerenciador de layout que está usando. Há casos em que você pode simplesmente expandir a borda do JPanel.


1
Adicionar preenchimento ao gerenciador de layout (no meu caso, GridLayout) adiciona preenchimento entre os painéis adjacentes, mas não dentro de um painel individual. Mas uma fronteira serve, obrigado pela ajuda.
Connor,

3

Suponho que seu JPanel contém JTextField, para fins de demonstração.

Esses componentes fornecem um JTextComponent#setMargin()método que parece ser o que você está procurando.

Se você está procurando uma borda vazia de qualquer tamanho ao redor do seu texto, bem, use EmptyBorder


0
JPanel p=new JPanel();  
GridBagLayout layout=new GridBagLayout(); 
p.setLayout(layout); 
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill=GridBagConstraints.HORIZONTAL; 
gbc.gridx=0;   
gbc.gridy=0;   
p2.add("",gbc);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.