Я пытаюсь передать элемент из 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();
}
Yours, как представляется, [XY Проблема] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) Тип вопрос. Нет переменной * name * для JLabel, которую вы ищете, поскольку она удерживается массивом. Вместо этого его ссылка осуществляется через массив и индекс: 'jlb [3]' например. Вопрос в том, как вы выбираете, какой JLabel в массиве вам нужен, и это то, о чем вы нам никогда не говорите. –
Вы бы назвали 'new1 (jlb [someindex])'. Подсказка: прочитайте о хорошем названии. Ваши имена методов и переменных просто ничего не говорят. Идея хорошего имени заключается в том, что он говорит читателю что-то о намерении вещи, стоящей за ней. Ваши имена просто не передают ничего. – GhostCat
Другая проблема заключается в том, что вы вызываете ключевые методы Swing в фоновом потоке и используете цикл while, а не более подходящий таймер Swing, но это не связано с вашим основным вопросом. –