I am new to gui in java, i spent 3 hours trying to figure out what i have done wrong or misunderstood, i should get this:

but the text in my code is displayed after textfields
textPanel = new JPanel();
textPanel.setLayout(new GridLayout(3,0));
fName = new JTextField( 15 ) ;
textPanel.add(fName);
jlbName = new JLabel ( "Firstname" );
jlbName.setHorizontalAlignment(JLabel.RIGHT);
textPanel.add(jlbName);
lName = new JTextField( 15 ) ;
textPanel.add(lName);
jlbName = new JLabel ( "LastName" );
jlbName.setHorizontalAlignment(JLabel.RIGHT);
textPanel.add(jlbName);
libNo = new JTextField( 15 ) ;
textPanel.add(libNo);
libNo.setEditable(false);
jlbName = new JLabel ( "Library Number" );
jlbName.setHorizontalAlignment(JLabel.RIGHT);
textPanel.add(jlbName);
add(textPanel,BorderLayout.EAST);
JButton jbtN = new JButton("Add borrower");
add(jbtN ,BorderLayout.SOUTH);