2014-03-24 2 views
0

Я просто хочу выровнять по горизонтали два JLabels, используя BoxLayout, возможно ли это? это мой код:горизонтальное выравнивание двух JLabels с использованием BoxLayout

public class CreditsPanel extends JPanel { 

private static final long serialVersionUID = 1L; 
private static final int GAP = 75; 

public CreditsPanel() { 
    super(); 

    this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 

    JLabel title = new JLabel("The developers of the game: "); 
    this.add(title); 
    title.setAlignmentX(Component.CENTER_ALIGNMENT); 
    this.add(Box.createVerticalStrut(GAP)); 

    JLabel[] names = new JLabel[2]; 
    names[0] = new JLabel("Pippo"); 
    names[1] = new JLabel("Pluto"); 
    int i = 0; 
    for (JLabel l : names) { 
     ImageIcon icon = getIcon(i); 
     l.setAlignmentX(Component.CENTER_ALIGNMENT); 
     l.setHorizontalTextPosition(JLabel.CENTER); 
     l.setVerticalTextPosition(JLabel.TOP); 
     l.setIcon(icon); 
     this.add(l, BorderLayout.EAST); 
     this.add(Box.createVerticalStrut(25)); 
     i++; 
    } 
} 

заблаговременно. getIcon - это только частный метод, позволяющий установить разные значки для моих ярлыков.

Теперь у меня есть что-то вроде этого: http://postimg.org/image/tml9wmr4f/ и я хочу это: http://postimg.org/image/nlg0fvygf/

+0

Вы видели [migLayout] (http://www.miglayout.com/)? Это значительно упрощает макеты в swing/swt. –

ответ

1

Basic код выглядит хорошо для меня.

Единственное, что из обычных является:

this.add(l, BorderLayout.EAST); 

Не знаю, если BorderLayoutEAST вызовет проблемы.

Отправьте сообщение SSCCE, если вам нужна дополнительная помощь.

+0

здесь вы http://pastebin.com/c7vhGs4Z – KnightOfArcadia

+0

@ Bellic93, разместите код в своем вопросе, а не на другом сайте. – camickr

+0

добавляет несколько пояснительных снимков в первом посте – KnightOfArcadia