2016-07-21 2 views
0

Я пытаюсь передать элемент из jlb[] в метод new1(JLabel jl). Вот мой код:Как получить буквенно-цифровой маркер JLabel в JLabel [], чтобы перейти к методу

JLabel jlb[]=new JLabel[10]; 
    for (int i = 0; i < 10; i++) { 
     jlb[i]=new JLabel("jlbl"+i); 
    } 
    new1(<variable name>); 

new1 является метод. Он имеет параметр JLabel. Я хочу позвонить new1(). Что я должен разместить вместо <variable name>, чтобы вызвать метод с переменной из массива?

Это new1 метод:

void new1(final JLabel jlbl){ 
    new Thread(){ 
     @Override 
     public void run() { 
      int y=10; 
      while (b>=150) {      
       for (int b=300; b > 150; b--) { 
        try { 
         Thread.sleep(10); 
         jlbl.setLocation(b, y); 
        } catch (Exception e) { 
        } 
       } 
      } 
      jLabel1.setLocation(b, y); 
     } 
    }.start(); 
} 
+3

Yours, как представляется, [XY Проблема] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) Тип вопрос. Нет переменной * name * для JLabel, которую вы ищете, поскольку она удерживается массивом. Вместо этого его ссылка осуществляется через массив и индекс: 'jlb [3]' например. Вопрос в том, как вы выбираете, какой JLabel в массиве вам нужен, и это то, о чем вы нам никогда не говорите. –

+0

Вы бы назвали 'new1 (jlb [someindex])'. Подсказка: прочитайте о хорошем названии. Ваши имена методов и переменных просто ничего не говорят. Идея хорошего имени заключается в том, что он говорит читателю что-то о намерении вещи, стоящей за ней. Ваши имена просто не передают ничего. – GhostCat

+1

Другая проблема заключается в том, что вы вызываете ключевые методы Swing в фоновом потоке и используете цикл while, а не более подходящий таймер Swing, но это не связано с вашим основным вопросом. –

ответ

0

Как я понимаю, вы ищете token алфавитно-цифровой, который будет идентифицировать переменную как myJLabel или cuteLabelFromAnArray. Ну, данные, хранящиеся в массивах, могут быть доступны со специальным оператором []. В вашем примере это будет, например:

new1(jlb[<put index here>]);