علت null بودنش رو توضیح دادم. شما اول سازنده رو با آرگومان labels صدا میزنید (که مقدار null داره) بعد arraylabels اجرا میشه. این labels در components قرار میگیره و components به components2 تخصیص پیدا میکنه.
تعداد labelهات هر چقدر باشه باز هم نیازی به این کار نیست. نمیگم arraylabels اشتباهه، ترتیب فراخوانی یا مکان فراخوانی اشتباهه. راحتتر میتونید از اول به صورت یک آرایه تعریف کنید (البته سورس نباید قفل باشه)
به صورتی که شما توضیح دادید، فقط دارید پیچیده اش میکنید و کد بدساختاری خواهد شد که رفته رفته نمیتونید یه قسمتش رو تغییر بدید بدون اینکه بقیه قسمت ها دچار مشکل نشن.

باید موقع کلیک کردن تابع arrayLabels فرخوانی بشه و labels مقدار بگیره ولی برای لیبل اولی اینطوری نمیشه !
طبق کدی که دادید موقع new MyHandler این تابع فراخوانی میشه نه موقع کلیک کردن.
بعد از ساخت محیطتون توسط swing designer باید از شر قفل بودن فایل سورس خلاص بشید چون میخواید به صورتی که دوست دارید سفارشی سازی کنید.