Erro java.lang.nullpointerexception

Quando tento checar se a senha que eu pus esta igual a cadastrada no banco de dados, da este erro. Estou tentando fazer um cadastro de clientes. Essa é a parte do login.

Segue meu código:

package br.com.infox.icones.telas;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPasswordField;
import java.sql.*;
import br.com.infox.icones.telas.dal.ModelConexao;

public class TelaLogin extends JFrame {

Connection conexao = null;
PreparedStatement pst = null;
ResultSet rs = null;

public void logar() {
	
	String sql = "select * from tbusuario where login =? and senha =?";
	
	try {
		pst = conexao.prepareStatement(sql);
		pst.setString(1, txtUsuario.getText());
		pst.setString(2, txtSenha.getText());
		
		rs= pst.executeQuery();
		
		if (rs.next()) {
			
			TelaPrincipal principal = new TelaPrincipal();
			principal.setVisible(true);
			
			
			
		}else {
			JOptionPane.showMessageDialog(null, "usuario e/senha invalido");
		}
		
	} catch (Exception e) {
		JOptionPane.showMessageDialog(null, e);
	}
	
	
	
}

private JPanel contentPane;
private JTextField txtUsuario;
private JPasswordField txtSenha;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				TelaLogin frame = new TelaLogin();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 */
public TelaLogin() {
	
	
	
	
	setAlwaysOnTop(true);
	setResizable(false);
	setTitle("Xsystem");
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 450, 300);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(null);
	
	JLabel lblNewLabel = new JLabel("Usuario");
	lblNewLabel.setBounds(25, 48, 46, 14);
	contentPane.add(lblNewLabel);
	
	JLabel lblNewLabel_1 = new JLabel("Senha");
	lblNewLabel_1.setBounds(25, 94, 46, 14);
	contentPane.add(lblNewLabel_1);
	
	txtUsuario = new JTextField();
	txtUsuario.setBounds(100, 45, 86, 20);
	contentPane.add(txtUsuario);
	txtUsuario.setColumns(10);
	
	JButton btnLogin = new JButton("Login");
	btnLogin.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			
			logar();
		}
	});
	btnLogin.setBounds(62, 156, 89, 23);
	contentPane.add(btnLogin);
	
	txtSenha = new JPasswordField();
	txtSenha.setBounds(100, 91, 86, 20);
	contentPane.add(txtSenha);
}

}

Cara quando seu projeto recebe uma Exception ele devolve um stacktrace e esse traz informações valiosas para encontrar o erro. Vc poderia postar o stacktrace?

Está bem vai sem stacktrace, creio eu que seu problema é que sua variável conexao não está instanciada tendo valor null aí quando acessa um método da interface ele gera essa Exception