2012-11-25 22 views
5

Come posso impedire a una JLabel di essere visualizzata a filo del telaio? Ho lo stesso problema quando utilizzo GridLayout o BoxLayout.Come utilizzare margini e paddings con Java GridLayout

Ecco un esempio in cui questo accade:

JPanel content = new JPanel(); 
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS)); 
content.add(new JLabel("Hello World")); 

CSS ha il concetto di margini e padding. Java ha simile?

Voglio ancora Sinistra giustificato ma con pochi pixel di spazio tra il bordo e l'etichetta.

+0

Vuoi dire, lo vuoi centrato? – Mordechai

+1

Hai appena avuto fortuna, ho guardato indietro a questa domanda, la prossima volta, scrivi un commento alla mia risposta, dovrei vedere la tua modifica. – Mordechai

risposta

13

è possibile impostare un bordo vuoto per il JLabel per spostare il componente ov er pochi pixel dal bordo sinistro:

label.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); 
1

Per le etichette centrati, provate questo:

content.add(new JLabel("Hello World", JLabel.CENTER)); 

Se stai usando Box, è possibile aggiungere spazio chiamando, (su una casella verticale):

content.add(Box.createVerticalStrut(height)); 
content.add(new JLabel("Hello World")); 

O per orizzontale:

content.add(Box.createHorizontalStrut(width));