میتونید اینکار رو انجام بدید. همونطور که برای ایجاد یک پنجره جدید از JFrame در main برنامتون مثلا مینویسید:new MyJFrame().setVisible(true);
کافیه در action listener دکمه ای که گذاشتید همینکار رو برای پنجره بعدی تکرار کنید.
فقط یه سری ریزه کاری ها ممکنه داشته باشه. مثلا در جایی که باید از setDefaultCloseOperation(EXIT_ON_CLOSE); استفاده کنید که معمولا باید برای پنجره اصلی برنامه باشه. اگر در یکی از پنجره های فرعی باشه با بستن اون پنجره کل برنامه بسته میشه. و اگر استفاده نکنید هم با بستن پنجره ها هر چند به نظر میاد هیچی نیست، ولی برنامه بسته نشده و RAM و CPU همچنان درگیر خواهند بود. مسئله Focus هم هست که فکر نکنم در این مورد مشکلی باشه ولی اگر دیدید رفتار focus اونجوری که میخواید نیست، یکسری متد وجود داره برای کنترل focus که لازمه سرچ کنید و در موردش بخونید.
اگر این توضیحات براتو ن کافی نبود، در گوگل سرچ کنید: open new jframe on button click