2016-07-21 11 views
0

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(); 
} 
+3

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. –

+0

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

+1

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. –

Antwort

0

Wie ich verstehe Sie suchen ein alphanumerical token, dass Ihre Variable wie myJLabel oder cuteLabelFromAnArray identifizieren würde. Nun, Daten in Arrays können mit speziellen Operator [] zugegriffen werden. In Ihrem Beispiel wäre dies zum Beispiel sein:

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