Your for loops may be messing you up:
You know which button has been pressed by e.getSource, so there's no need to do either for loop. In your second for loop above, you're changing the text and actioncommands of all buttons (note that your program doesn't truly get locked but rather you must deal with 12 dialogs before the dialogs will quit).
Myself, I'd create a class, say called ReservationSeat, that holds a boolean variable, booked, an int, seatNumber, an int (or better
String) variable, confirmationNumber, give it requisite setters and getters, and either create a 2-dimensional array of these guys or perhaps associate JButtons with these objects by using a HashMap<JButton, ReservationSeat>.
e.g.,
If you used a HashMap, then your button listener can be greatly simplified. i.e.,
Note the similar post here:
Reservation Java Project
Classmate?