2013-04-14 2 views
0

У меня есть JPanel, который отображает несколько JLables, каждый из которых представляет символ двоичной строки. (Все они индивидуальны, потому что у каждого должен быть MouseListener, но это не является частью моей проблемы)Центрирование нескольких JLabels в JPanel

Моя проблема в том, что я не могу показаться центром JLables.

Я попытался

this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); 
add(label1); //= left aligned 
label1.setAlignmentX(Component.CENTER_ALIGNMENT); //= still left aligned 

и

this.setLayout(new BorderLayout()); 
add(label1, BorderLayout.CENTER); //= only 1 showed up 

Я также оставил его по умолчанию FlowLayout, но по какой-то причине, это игнорирует размер и пробелы в JLabels так, что они не делают все они вписываются в строку, которую они предполагают. Я также попытался поставить FlowLayout внутри Boxlayout. Все еще не сработало.

Обратите внимание, что в моих примерах выше, у меня есть более чем одна метка (я на самом деле 31 !!)

Как я должен получить эту работу?

EDIT: обновлено, где я скопировал неправильный код. label1.setAlignmentX (Component.CENTER_ALIGNMENT)

EDIT: jLabels должны быть в горизонтальном ряду, а не в столбце.

+0

Что значение 'alignment' в первом коде? –

+0

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

+0

Я бы предложил, может быть, один столбец 'GridLayout', с текстом с текстом в центре. –

ответ

1

Расположение для BoxLayout должно быть вдоль Y_AXIS для любого выравнивания по центру. В случае BorderLayout, в то время как 3 компонента могут быть расположены горизонтально (WEST, CENTER, EAST), они не распределяются равномерно. Аналогично, FlowLayout, позволяя выравнивать компоненты по центру, равномерно распределяет их.

Самый простой подход будет использовать GridLayout:

setLayout(new GridLayout()); 
label1.setHorizontalAlignment(JLabel.CENTER); 
+0

Я добавил Edit ... Я предполагал, что говорить, что хочу представлять двоичный код, означает, что я хочу, чтобы все метки были горизонтальными. Кроме того, FlowLayout на самом деле не хочет уважать мой предпочтительный размер. – user2278644

Смежные вопросы