Comandos para alinhar Janelas, dar quebra de linha e inserir evento

Como faço para alinhar os comandos que tenho que utilizar, alinha a direita, ou colocar na posição x, e para vir na linha abaixo, e como por exemplo no botão fechar adicionar um evento para sair.


package Interface;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Janela_Cadastra_Cliente extends JFrame{

	
	

	public Janela_Cadastra_Cliente() {  
	     initComponents();
    }  
	  
	    private void initComponents() {
	    JFrame cadastracliente = new JFrame ("Cadastro de Cliente");
	    cadastracliente.setSize(600, 600);
	    cadastracliente.setVisible(true);
	    
	    JPanel CadastroCli = new JPanel ();
	    
	    	JLabel nome = new JLabel ();
	    	nome.setText ("Nome : ");
	    	CadastroCli.add (nome);
	    	JTextField text_nome = new JTextField (40) ;
	    	CadastroCli.add (text_nome);
	    
	    	JLabel dtnasci = new JLabel();
	    	dtnasci.setText("Data de Nascimento: ");
	    	CadastroCli.add(dtnasci);
	    	JTextField datanasci = new JTextField (40) ;
	    	CadastroCli.add (datanasci);
	    	
	    	JLabel cpf = new JLabel();
	    	cpf.setText("CPF nº: ");
	    	CadastroCli.add(cpf);
	    	JTextField text_cpf = new JTextField (40) ;
	    	CadastroCli.add (text_cpf);
	    	
	    	JLabel doc_id = new JLabel();
	    	doc_id.setText("Identidade nº: ");
	    	CadastroCli.add(doc_id);
	    	JTextField text_id = new JTextField (40) ;
	    	CadastroCli.add (text_id);
	    	
	    	JLabel rua = new JLabel();
	    	rua.setText("Rua: ");
	    	CadastroCli.add(rua);
	    	JTextField text_rua = new JTextField (40) ;
	    	CadastroCli.add (text_rua);
	    	
	    	JLabel bairro = new JLabel();
	    	bairro.setText("Bairro: ");
	    	CadastroCli.add(bairro);
	    	JTextField text_bairro = new JTextField (40) ;
	    	CadastroCli.add (text_bairro);
	    	
	    	JLabel cidade = new JLabel();
	    	cidade.setText("Cidade: ");
	    	CadastroCli.add(cidade);
	    	JTextField text_cidade = new JTextField (40) ;
	    	CadastroCli.add (text_cidade);
	    	
	    	JLabel telfixo = new JLabel();
	    	dtnasci.setText("Telefone Fixo: ");
	    	CadastroCli.add(telfixo);
	    	JTextField text_telfixo = new JTextField (40) ;
	    	CadastroCli.add (text_telfixo);
	    	
	    	JLabel telcelular = new JLabel();
	    	telcelular.setText("Telefone Celular: ");
	    	CadastroCli.add(telcelular);
	    	JTextField text_telcelular = new JTextField (40) ;
	    	CadastroCli.add (text_telcelular);
	    	
	    	JButton botaoincluiralterar = new JButton();
	    	botaoincluiralterar.setText("Incluir");
	    	CadastroCli.add(botaoincluiralterar);
	    	
	    	JButton botaocancelar = new JButton();
	    	botaocancelar.setText("Cancelar");
	    	CadastroCli.add(botaocancelar);
	    	
	    	JButton botaosair = new JButton();
	    	botaosair.setText("Fechar");
	    	CadastroCli.add(botaosair);
	    	
	    	
	     cadastracliente.setContentPane (CadastroCli);
	     cadastracliente.setVisible (true);
	    
			
	    }
	    
	    public static void main (String [] args) {  
	    	new Janela_Cadastra_Cliente();

	        
		}
}