2014-01-17 1 views
-1

Вот что у меня есть:Может ли переменная ссылаться на компонент внутри FOR?

Существует 9 уровней заклинаний. Маг может использовать только определенное количество заклинаний в день.

Я построил панель с вкладками (9 вкладок), которая содержит 9 пустых квадратов (изображений) на каждой вкладке.

Цифры ниже (4, 3, 2, 1 и 0s) - это количество заклинаний, которые может наложить маг.

Я хочу установить квадраты, которые не будут использоваться невидимыми.

пример:

, если он может бросить 4 заклинания на уровне 1, image1square5 через image1square9 стать невидимым. 3 заклинания на уровне 2, image2square4 через image2square9 становятся невидимыми.

Я попытался это:

int lvl1, lvl2, lvl3, lvl4, lvl5,lvl6,lvl7,lvl8,lvl9; 
    lvl1 = 4 +1; 
    lvl2 = 3 +1; 
    lvl3 = 3 +1; 
    lvl4 = 2 +1; 
    lvl5 = 1 +1; 
    lvl6 = 0 +1; 
    lvl7 = 0 +1; 
    lvl8 = 0 +1; 
    lvl9 = 0 +1; 

for (int i = n1; i <= 9; i++) { 
      image1square+i.setVisible(false); 
    } 
for (int i = n2; i <= 9; i++) { 
      image2square+i.setVisible(false); 
    } 

и так далее ...

Как использовать переменную внутри FOR?

+1

См. [Это] (http://arshajii.com/coding-faqs/dynamic-vars.html). – arshajii

+1

... скажите whaaat? – TypeIA

+0

где вы объявляете свои объекты image1square? – Andrew

ответ

4

Используйте массивы или списки вместо последовательного наименования переменных.

0

Если вы создаете игру на основе плитки, то более подходящим будет многомерный массив или List<List<?>>.

0

Я вернулся и учился, но все равно не буду работать. Here's то, что я сейчас:

Я опустил

jImage1Empty1, jImage1Empty2, jImage2Empty1, etc, 

но они объявлены. Это jlabels с иконкой на нем. У меня есть 9 изображений, отображаемых в каждой панели, но после запуска он должен установить несколько для setvisible (false).

int lvl[] = new int[9]; 
    lvl[0] = 4 +1; 
    lvl[1] = 3 +1; 
    lvl[2] = 3 +1; 
    lvl[3] = 2 +1; 
    lvl[4] = 1 +1; 
    lvl[5] = 0 +1; 
    lvl[6] = 0 +1; 
    lvl[7] = 0 +1; 
    lvl[8] = 0 +1; 
    String img1 = "jImage1Empty"; 
    String img2 = "jImage2Empty"; 


    for (int i = 0; i < 9; i++) { 
      img1 +lvl[0].setVisible(false); 
    } 
    for (int i = 0; i < 9; i++) { 
      img2 +lvl[1].setVisible(false); 
    } 
} 

Я хотел результат быть похожим:

jImage1Empty5.setVisible(false); 
jImage1Empty6.setVisible(false); 
jImage1Empty7.setVisible(false); 
jImage1Empty8.setVisible(false); 
jImage1Empty9.setVisible(false); 
jImage2Empty4.setVisible(false); 
jImage2Empty5.setVisible(false); 
jImage2Empty6.setVisible(false); 
jImage2Empty7.setVisible(false); 
jImage2Empty8.setVisible(false); 
jImage2Empty9.setVisible(false); 
etc... 

But not as string. As a command. 

Возможно ли это? Справка

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