2011-12-28 6 views

ответ

10

Пара JLabel конструкторы принимают аргументы горизонтального выравнивания. Эти constants унаследованы от SwingConstants.

+0

Да, это правильно. Но скажем, у меня есть 100 JLabels. Когда я правильно выровняю их с конструктором и решаю изменить это налево-выравнивание, мне придется делать это сто раз вручную. Есть ли способ, чтобы выровнять их все с одним шагом из уровня менеджера компоновки? –

+0

Если вы не хотите инкапсулировать такую ​​логику, используйте ['setAlignmentY'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setAlignmentY%28float%29). Таким образом, контейнер может установить горизонтальное выравнивание любого экземпляра 'JComponent' (например,' JLabel'). – mre

+0

@Noran вы можете создать класс или пустоту с параметрами, возвращающими JLabel, вы можете использовать SwingConstant, JLabel # possition или с помощью Html <= 3.2 +1 – mKorbel

22

@Noran В ответ на ваш комментарий к ответу @ mre вы можете инициализировать все JLabels в массив. Затем все, что вам нужно сделать, - это цикл через массив и установка выравнивания таким образом.

for (JLabel label: arrayOfJLabels) { 
    label.setHorizontalAlignment(SwingConstants.LEFT); 
} 
+0

Это должен быть правильный ответ. –

1

Я прочитал ваш вопрос, и у меня есть предложение. Существует несколько способов выполнить ваши требования. Поскольку вы не говоря уже о точных требований, я могу дать вам простой пример, как я понимаю:

//create a JLabel and name it as jLabel2 
javax.swing.JLabel jLabel2 = new javax.swing.JLabel(); 
jLabel2.setText("Dehans Label"); 
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); 

Пожалуйста, обратитесь следующие методы @JLabel класса в JavaSE API через следующие ссылки:

+0

Лучше всего ссылку на последнюю версию JavaDocs. Я отредактировал ваш ответ, чтобы указать на J2SE 7. Советы по получению ссылки на последние документы см. В [пункте 2 преимуществ] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) , –

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