zu übergeben. Ich versuche ein Element von jlb[]
an die Methode new1(JLabel jl)
zu übergeben. Hier ist mein Code:Wie bekomme ich das alphanumerische Token eines JLabel in einem JLabel [], um es an die Methode
JLabel jlb[]=new JLabel[10];
for (int i = 0; i < 10; i++) {
jlb[i]=new JLabel("jlbl"+i);
}
new1(<variable name>);
new1
ist eine Methode. Es hat einen JLabel
Parameter. Ich möchte new1()
anrufen. Was sollte ich statt <variable name>
setzen, um die Methode mit Variable aus dem Array aufzurufen?
Dies ist new1
Methode:
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 ein [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) zu sein scheinen Typ Frage. Für das gesuchte JLabel existiert keine Variable * name *, da sie von einem Array gehalten wird. Stattdessen bezieht sich seine Referenz auf das Array und einen Index: 'jlb [3]' zum Beispiel. Die Frage ist - wie wählen Sie, welches JLabel im Array das ist, das Sie wollen, und das ist etwas, was Sie uns nie sagen. –
Sie würden 'new1 (jlb [someindex])' nennen. Tipp: Lesen Sie über gute Benennung. Ihre Methoden- und Variablennamen sagen einfach nichts aus. Die Idee eines guten Namens besteht darin, dass es dem Leser etwas über die Absicht der dahinterstehenden Sache erzählt. Deine Namen kommunizieren einfach nichts. – GhostCat
Ein weiteres Problem besteht darin, dass Sie Key-Swing-Methoden innerhalb eines Hintergrundthreads aufrufen und eine While-True-Schleife anstelle eines passenderen Swing-Timers verwenden, die jedoch nichts mit Ihrer Hauptfrage zu tun hat. –