This is part of a function that takes an iterator of book objects and creates a a window that has the title of each book and the ability to check it out. The amount of books in the iterator will vary.
Code:
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]while[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2](books.hasNext()){[/SIZE][/LEFT]
[INDENT][LEFT][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]currentBook[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = books.next();[/SIZE][/LEFT]
[LEFT][SIZE=2]JPanel contentPane = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] JPanel();[/SIZE]
[SIZE=2]contentPane.setPreferredSize([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Dimension(500, 300));[/SIZE]
[SIZE=2]contentPane.setLayout([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] FlowLayout());[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]final[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] JTextField bookName = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] JTextField([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]currentBook[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].toString());[/SIZE]
[SIZE=2]bookName.setEditable([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]false[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2]);[/SIZE]
[SIZE=2]JButton checkOut = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] JButton([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Check Out"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE][/LEFT]
[LEFT][SIZE=2]checkOut.addActionListener([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] ActionListener() {[/SIZE][/LEFT]
[INDENT][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] actionPerformed(ActionEvent e)[/SIZE]
[SIZE=2]{[/SIZE][/LEFT]
[INDENT][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] ([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]currentCardholder[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] != [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]null[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2])[/SIZE][/LEFT]
[INDENT][LEFT][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]currentBook[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].checkOut([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]currentCardholder[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE][/LEFT]
[/INDENT][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT]
[INDENT][SIZE=2]Toolkit.[I]getDefaultToolkit[/I]().beep(); [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// signal error[/COLOR][/SIZE][/COLOR][/SIZE]
[/INDENT][/INDENT]
[LEFT][SIZE=2]}[/SIZE][/LEFT]
[/INDENT]
[SIZE=2]});[/SIZE]
[LEFT][SIZE=2]contentPane.add(bookName);[/SIZE]
[SIZE=2]contentPane.add(checkOut);[/SIZE]
[SIZE=2]setContentPane(contentPane);[/SIZE]
[SIZE=2]}[/SIZE][/LEFT]
[/INDENT]
[SIZE=2]pack();[/SIZE]
[LEFT][SIZE=2]repaint();[/SIZE][/LEFT]
I've never worked with GUIs before I just copied the code from an example and have been trying to edit it. When I run this, it only displays the first book. I know it iterates through correctly so the problem is somehow in the way I'm creating the text fields and buttons.
I have no idea why it's not working, any ideas?