2013-10-01 2 views
0

:)Java - Циклическое И GUI

Я хочу сделать что-то вроде этого - я есть, например четыре этикетки:

lblError1; 
lblError2; 
lblError3; 
lblError4; 

Все они set.Visible(false);

Теперь я хочу цикл, эти ярлыки будут отображаться. Если k = 2, то первые две метки устанавливаются на видимые. Если k = 4, первые четыре метки устанавливаются на видимые.

Моя идея:

int k=2; 
for (i=1; i<k+1; i++) { 
    (lbl.Error + i).setVisible(true); 
} 

Это не работает. Существует одно правило: я должен сделать это с помощью цикла. Если есть еще один отличный способ, как это сделать ЭФФЕКТИВНЫМ способом без цикла, пожалуйста, скажите мне. В противном случае скажите мне, как сделать цикл, который будет работать для этого решения.

Большое спасибо! :))

+1

Вы должны прочитать на массивах. – ppeterka

+0

Вы не можете использовать конкатенацию строк для имен переменных в Java. – blgt

ответ

3

Почему бы не иметь массив меток и использовать цикл for, чтобы установить их видимость на основе значения k. Это было бы более читаемым, чем ваш (lbl.Error + i) (что я сомневаюсь, если он сработает).

for (int i=0; i<k; i++) { 
    labels[i].setVisible(true); // where labels is the array of label. 
} 

Edit: -

Скажем, если вы используете JLabel, то вы можете создать массив меток, как это: -

JLabel[] labels = new JLabel[yourArraySize]; 
for (int i=0; i<labels.length; i++) { 
    labels[i] = new JLabel(); // You can also use JLabel(labelText) constructor. 
} 
+0

Да, спасибо. Цикл и ваше решение выглядят хорошо, и это сработает, но можете ли вы показать мне, пожалуйста, как сделать такой массив? –

+0

@ TomsBugna-Проверьте изменение в моем ответе. – SudoRahul

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