コンパイル時に正確な名前を知らずに変数を参照する方法はありません。
JLabel label0 = new JLabel();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JLabel label3 = new JLabel();
JLabel label4 = new JLabel();
JLabel label5 = new JLabel();
JLabel label6 = new JLabel();
JLabel label7 = new JLabel();
JLabel label8 = new JLabel();
JLabel label9 = new JLabel();
JLabel[] label = new JLabel[] { label0, label1, label2, label3, label4, label5, label6, label7, label8, label9 };
for (int i = 0; i < 10; i++) {
label[i].setText("label" + i);
}
そんなに(および可能なタイプミス)を入力しないようにするには、あなたが同様のループでラベルを作成することができます:配列(またはいくつかの他のコレクション)を使用している唯一のオプション
JLabel[] label = new JLabel[10];
for (int i = 0; i < 10; i++) {
label[i] = new JLabel();
label[i].setText("label" + i);
}
することができますまだlabel[4]
構文を使用して特定のラベルを参照してください。配列は0からインデックスされるので、label[0]
が最初の要素であり、label[9]
が10番目(最後)の要素であることに注意してください。
これはどのように機能しますか? ':'が何をしているのか、そしてこのプログラムは何をしているのかを教えてください。 –
@LakshyaGoyalそのような 'for-loop'は' for-each "ループと呼ばれます:[docs](http://docs.oracle.com/javase/1.5.0/docs/guide/language /foreach.html)。 ':'は "on"を意味するので、上の例は "ラベル上の各JLabel l"を読むことができます – Frakcool
@Frakcoolありがとう! – GKFX