Problemas com ResultSet

Olá, estou tentando fazer um menu simples de login, e ocorreu o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

Como já procurei em vários tópicos e vi que esse erro ocorre quando se tenta acessar variáveis, métodos ou atributos que não foram instanciados, acho que eu não estou sabendo instanciar o ResultSet corretamente. Já consegui logar no banco e fazer um insert.

Bom, segue o código, e desde já agradeço por qualquer ajuda ;D

Aqui, o ConnectionFactory (que acessa o banco):

package projeto1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Vitor
 */
public class ConnectionFactory {
	public Connection con;
	public Statement stmt;
	public ResultSet rs; // talvez o erro seja aqui, não sei XD
	
	String url = "jdbc:oracle:thin:@localhost:1521:orcl";
	String driver = "oracle.jdbc.OracleDriver";
	String login = "vitor";
	String password = "vgg123";
	
	public void abrirconexao() {
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url,login,password);
			stmt = con.createStatement();
		} catch(SQLException e) { // trata os erros SQL
			throw new RuntimeException(e);
		} catch(ClassNotFoundException e) { // trata erros de conexão
			throw new RuntimeException(e);
		}
	}
}

Aqui é onde estou com problemas

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
	try {
		ConnectionFactory fac = new ConnectionFactory();
		fac.abrirconexao();
		fac.stmt = fac.con.createStatement();
		String sql = "select * from Simulado";
		fac.rs.first(); // ou pode ser aqui também, o erro
		
		if(txtlogin.getText().equals(fac.rs.getString("login")) && txtsenha.getText().equals(fac.rs.getString("senha")) ) {
			JOptionPane.showMessageDialog(this, "Acesso Permitido!!");
		} else {
			JOptionPane.showMessageDialog(this, "Access Denied!!");
		}
	} catch(SQLException e) {
		JOptionPane.showMessageDialog(this, "Erro Cmdo SQL " + e.getMessage());
	}
}

Parece que faltou algo como:

ResultSet rs = stmt.executeQuery(sql);`

Já consegui arrumar obrigado :smiley: