Advertisement
Guest User

Untitled

a guest
Jun 9th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.38 KB | None | 0 0
  1. package formularios;
  2.  
  3. import classes_persistencia.UsuarioDAO;
  4. import classes_registros.Usuario;
  5. import classes_utilitarias.JanelaDialogo;
  6. import classes_utilitarias.RedimensionaImagem;
  7. import java.awt.Image;
  8. import java.io.File;
  9. import java.io.FileNotFoundException;
  10. import java.io.IOException;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import java.util.ArrayList;
  14. import java.util.logging.Level;
  15. import java.util.logging.Logger;
  16. import javax.imageio.ImageIO;
  17. import javax.swing.ImageIcon;
  18. import javax.swing.JOptionPane;
  19.  
  20. public class FrmLogin extends javax.swing.JFrame {
  21. private UsuarioDAO conexao = new UsuarioDAO();
  22. private ResultSet listagem;
  23. private ArrayList<Usuario> registros = new ArrayList<Usuario>();
  24. private Usuario registro = new Usuario();
  25. private FrmPesquisa encontrados;
  26. private JanelaDialogo dialogo = new JanelaDialogo();
  27.  
  28. public FrmLogin() {
  29. initComponents();
  30. setLocationRelativeTo( null );
  31. }
  32.  
  33.  
  34. @SuppressWarnings("unchecked")
  35. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  36. private void initComponents() {
  37.  
  38. lbl_login = new javax.swing.JLabel();
  39. lbl_senha = new javax.swing.JLabel();
  40. bt_entrar = new javax.swing.JButton();
  41. bt_esquecisenha = new javax.swing.JButton();
  42. ctxt_senha = new javax.swing.JPasswordField();
  43. ctxt_login = new javax.swing.JTextField();
  44. lbl_dicaBusca_login = new javax.swing.JLabel();
  45. bt_listaUsuarios = new javax.swing.JButton();
  46. jPanel1 = new javax.swing.JPanel();
  47. lbl_logo_singelo = new javax.swing.JLabel();
  48.  
  49. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  50. setTitle("SINGELO 1.0");
  51. setPreferredSize(new java.awt.Dimension(293, 220));
  52. setResizable(false);
  53. getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
  54.  
  55. lbl_login.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
  56. lbl_login.setText("Login:");
  57. getContentPane().add(lbl_login, new org.netbeans.lib.awtextra.AbsoluteConstraints(28, 60, -1, -1));
  58.  
  59. lbl_senha.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
  60. lbl_senha.setText("Senha:");
  61. getContentPane().add(lbl_senha, new org.netbeans.lib.awtextra.AbsoluteConstraints(25, 100, -1, -1));
  62.  
  63. bt_entrar.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
  64. bt_entrar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/login.png"))); // NOI18N
  65. bt_entrar.setText("Entrar");
  66. bt_entrar.setToolTipText("Entrar");
  67. bt_entrar.addActionListener(new java.awt.event.ActionListener() {
  68. public void actionPerformed(java.awt.event.ActionEvent evt) {
  69. bt_entrarActionPerformed(evt);
  70. }
  71. });
  72. bt_entrar.addKeyListener(new java.awt.event.KeyAdapter() {
  73. public void keyPressed(java.awt.event.KeyEvent evt) {
  74. bt_entrarKeyPressed(evt);
  75. }
  76. });
  77. getContentPane().add(bt_entrar, new org.netbeans.lib.awtextra.AbsoluteConstraints(3, 150, 110, 30));
  78.  
  79. bt_esquecisenha.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
  80. bt_esquecisenha.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/help.png"))); // NOI18N
  81. bt_esquecisenha.setText("Esqueceu a senha?");
  82. bt_esquecisenha.setToolTipText("Esqueceu a senha?");
  83. bt_esquecisenha.addActionListener(new java.awt.event.ActionListener() {
  84. public void actionPerformed(java.awt.event.ActionEvent evt) {
  85. bt_esquecisenhaActionPerformed(evt);
  86. }
  87. });
  88. getContentPane().add(bt_esquecisenha, new org.netbeans.lib.awtextra.AbsoluteConstraints(125, 150, 150, 30));
  89.  
  90. ctxt_senha.addKeyListener(new java.awt.event.KeyAdapter() {
  91. public void keyPressed(java.awt.event.KeyEvent evt) {
  92. ctxt_senhaKeyPressed(evt);
  93. }
  94. });
  95. getContentPane().add(ctxt_senha, new org.netbeans.lib.awtextra.AbsoluteConstraints(65, 95, 160, -1));
  96.  
  97. ctxt_login.addFocusListener(new java.awt.event.FocusAdapter() {
  98. public void focusLost(java.awt.event.FocusEvent evt) {
  99. ctxt_loginFocusLost(evt);
  100. }
  101. });
  102. ctxt_login.addKeyListener(new java.awt.event.KeyAdapter() {
  103. public void keyPressed(java.awt.event.KeyEvent evt) {
  104. ctxt_loginKeyPressed(evt);
  105. }
  106. public void keyReleased(java.awt.event.KeyEvent evt) {
  107. ctxt_loginKeyReleased(evt);
  108. }
  109. });
  110. getContentPane().add(ctxt_login, new org.netbeans.lib.awtextra.AbsoluteConstraints(65, 55, 160, -1));
  111.  
  112. lbl_dicaBusca_login.setFont(new java.awt.Font("Tahoma", 1, 8)); // NOI18N
  113. getContentPane().add(lbl_dicaBusca_login, new org.netbeans.lib.awtextra.AbsoluteConstraints(68, 83, 150, 10));
  114.  
  115. bt_listaUsuarios.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
  116. bt_listaUsuarios.setText("?");
  117. bt_listaUsuarios.setToolTipText("Lista de usuários logados");
  118. bt_listaUsuarios.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
  119. bt_listaUsuarios.addActionListener(new java.awt.event.ActionListener() {
  120. public void actionPerformed(java.awt.event.ActionEvent evt) {
  121. bt_listaUsuariosActionPerformed(evt);
  122. }
  123. });
  124. getContentPane().add(bt_listaUsuarios, new org.netbeans.lib.awtextra.AbsoluteConstraints(225, 55, 40, 28));
  125.  
  126. jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  127. getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 270, 90));
  128.  
  129. lbl_logo_singelo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/LogoLoginCorreta.JPG"))); // NOI18N
  130. getContentPane().add(lbl_logo_singelo, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 290, 40));
  131.  
  132. pack();
  133. }// </editor-fold>
  134.  
  135. private void bt_entrarActionPerformed(java.awt.event.ActionEvent evt) {
  136. try {
  137. ir();
  138. } catch (FileNotFoundException ex) {
  139. Logger.getLogger(FrmLogin.class.getName()).log(Level.SEVERE, null, ex);
  140. } catch (IOException ex) {
  141. Logger.getLogger(FrmLogin.class.getName()).log(Level.SEVERE, null, ex);
  142. }
  143. }
  144.  
  145. private void ctxt_senhaKeyPressed(java.awt.event.KeyEvent evt) {
  146. if (evt.getKeyCode() == evt.VK_ENTER){
  147. try {
  148. ir();
  149. } catch (FileNotFoundException ex) {
  150. Logger.getLogger(FrmLogin.class.getName()).log(Level.SEVERE, null, ex);
  151. } catch (IOException ex) {
  152. Logger.getLogger(FrmLogin.class.getName()).log(Level.SEVERE, null, ex);
  153. }
  154. }
  155. }
  156.  
  157. public void ir() throws FileNotFoundException, IOException{
  158. String senha = "123"; // SENHA E LOGIN DE SUPER USUÁRIO
  159. if(ctxt_login.getText().equals(senha) && ctxt_senha.getText().equals(senha)){
  160. FrmPrincipal janelainicial = new FrmPrincipal(ctxt_login.getText(), 4);
  161. janelainicial.setVisible(true);
  162. dispose();
  163. }
  164. else{ // BUSCA USUÁRIOS NO BANCO
  165. registros = conexao.listaArrayList("select * from usuario where nomeusuario like'"+ctxt_login.getText()+"%'");
  166. if(registros.size() == 1){
  167. registro = registros.get(0);
  168. if(registro.getNome().equals(ctxt_login.getText()) && registro.getSenha().equals(ctxt_senha.getText())){
  169. FrmPrincipal janelainicial = new FrmPrincipal(ctxt_login.getText(), registro.getNvlAcesso());
  170. janelainicial.setVisible(true);
  171. dispose();
  172. }
  173. else{
  174. JOptionPane.showMessageDialog(null, "Senha incorreta!");
  175. }
  176. }
  177. else{ // USUÁRIO NAO ENCONTRADO NO BANCO E NÃO É O SUPER USUÁRIO
  178. JOptionPane.showMessageDialog(null, "Usuário ou senha incorreta!");
  179. }
  180.  
  181. }
  182. }
  183.  
  184. package classes_persistencia;
  185.  
  186. import classes_registros.Agenda;
  187. import classes_registros.Usuario;
  188. import com.sun.rowset.CachedRowSetImpl;
  189. import java.sql.*;
  190. import java.util.ArrayList;
  191. import javax.sql.rowset.CachedRowSet;
  192. import javax.swing.JOptionPane;
  193. /**
  194. *
  195. * @author Antonio
  196. *
  197. */
  198. public class UsuarioDAO {
  199. //Toda classe DAO, começar com as duas linhas abaixo.
  200. FabricaConexao trataConexao = new FabricaConexao(); //cria o objeto FabricaConexao que tratará as conexões com o banco
  201. Connection conexao; //Cria um objeto do tipo Connection para guardar os Statements
  202.  
  203. //construtor do objeto DAO (por enquanto sem necessidade de instrucoes)
  204. public UsuarioDAO(){
  205. }
  206.  
  207. //Para cada método que criarmos, vamos pedir a quantidade correta de parâmetros para a camada de visão
  208.  
  209. //Abaixo o método INSERT que retornará um Inteiro Longo com o número ID gerado pelo SGBD
  210. //e pedimos como parâmetros todos os campos da classe Agenda , exceto o campo ID
  211. public Long insere(String nome,
  212. String email,
  213. String cpf,
  214. String foneRes,
  215. String foneCel,
  216. String senha,
  217. int nvlAcesso){
  218.  
  219.  
  220. //instanciamos o objeto nova Agenda e passamos os parametros recebidos para o construtor
  221. Usuario novoUsuario = new Usuario(nome, email, cpf, foneRes, foneCel, senha, nvlAcesso);
  222.  
  223. ResultSet rsidGerado = null; //resultset para receber a resposta do SGBD
  224. Long idGerado = null; //variável tipo Long para guardar o ID criado pelo sgbd que estará no ResultSet
  225.  
  226. //Cria e prepara uma string SQL PARAMETRIZADA para INSERT
  227. //Observe que as interrogações devem ser na mesma quantidade de campos a serem preenchidos.
  228. String comandoSQL;
  229. comandoSQL = "insert into usuario (nomeUsuario,"
  230. + " email,"
  231. + " cpf,"
  232. + " foneres,"
  233. + " fonecel,"
  234. + " senha,"
  235. + " nvlacesso)"
  236. + " values (?,?,?,?,?,?,?)";
  237.  
  238. //Abre a conexão com o banco de dados
  239. conexao = trataConexao.abreConexao();
  240.  
  241. //se a conexão não estiver nula, abre e tenta registrar o comando
  242. if (conexao != null){
  243. try{
  244. //cria um objeto do tipo PreparedStatement, ele que vai receber o comando SQL
  245. PreparedStatement stmt = conexao.prepareStatement(comandoSQL, Statement.RETURN_GENERATED_KEYS);
  246. //Usamos os métodos GET para preencher os campos parametrizados
  247. stmt.setString(1, novoUsuario.getNome());
  248. stmt.setString(2, novoUsuario.getEmail());
  249. stmt.setString(3, novoUsuario.getCpf());
  250. stmt.setString(4, novoUsuario.getFoneRes());
  251. stmt.setString(5, novoUsuario.getFoneCel());
  252. stmt.setString(6, novoUsuario.getSenha());
  253. stmt.setInt(7, novoUsuario.getNvlAcesso());
  254.  
  255.  
  256. //a linha abaixo executa e tenta fazer o insert.
  257. stmt.executeUpdate();
  258.  
  259. //o trecho abaixo preenche o ResultSet com o código gerado pelo SGBD
  260. rsidGerado = stmt.getGeneratedKeys();
  261. if (rsidGerado.next()) {
  262. //em seguida, lemos no resultset e guardamos o código criado
  263. idGerado = (rsidGerado.getLong(1));
  264. }
  265. //por fim, fechamos o Statement
  266. stmt.close();
  267. }
  268. catch(SQLException e){ //Deu erro de SQL
  269. idGerado = null;
  270. //JOptionPane.showMessageDialog(null, e);
  271. e.printStackTrace();
  272. }
  273. catch(Exception e){ //Deu um erro qualquer
  274. idGerado = null;
  275. //JOptionPane.showMessageDialog(null, e);
  276. e.printStackTrace();
  277. }
  278. finally{//sempre criar try/catch/finally e no finally mandar fechar a conexão.
  279. trataConexao.fechaConexao(conexao);
  280. }
  281. }
  282. else{
  283. //se a conexão está NULL, vai cair aqui
  284. JOptionPane.showMessageDialog(null, "Conexão não foi iniciada corretamente (NULL).");
  285. }
  286.  
  287. //colocar o método para fechar conexão também antes do Return
  288. trataConexao.fechaConexao(conexao);
  289. return idGerado; //por fim, retornamos o ID que foi gerado pelo sgbd
  290. }
  291.  
  292. package classes_persistencia;
  293. /**
  294. *
  295. * @author daniel
  296. *
  297. Esta classe é responsável por abrir e fechar as conexões ao banco de dados.
  298. As configurações do banco são carregadas do arquivo xml e gravadas durante o método construtor.
  299. */
  300.  
  301. import java.sql.*;
  302. import javax.swing.*;
  303. import classes_utilitarias.UtilsArquivo;
  304. import classes_utilitarias.ConfiguracaoGlobal;
  305. import com.thoughtworks.xstream.XStream;
  306.  
  307.  
  308. public class FabricaConexao {
  309. /*
  310. * //para Postgres
  311. private static String stringJDBC = "org.postgresql.Driver";
  312. private static String stringBanco = "jdbc:postgresql://localhost:5432/postgres";
  313. private static String bdLogin = "postgres";
  314. private static String bdSenha = "1234";
  315. */
  316.  
  317. //para mysql
  318. private String stringJDBC = "com.mysql.jdbc.Driver";
  319. private String stringBanco = "jdbc:mysql://localhost:3306/";
  320. private String nomeBanco = "Singelo";
  321. private String bdLogin = "MySQL";
  322. private String bdSenha = "1234";
  323.  
  324.  
  325. //private Connection conexao; //objeto Connection que será retornado com as informações da conexão aberta
  326.  
  327. public FabricaConexao(){
  328. //Busca as configurações de servidor no arquivo .xml
  329. XStream xstream = new XStream();
  330. ConfiguracaoGlobal restauraConfig;
  331. String xml = "";
  332.  
  333. try{
  334. xml = UtilsArquivo.carregar("singelo.xml");
  335. }
  336. catch (Exception e){
  337. e.printStackTrace();
  338. }
  339.  
  340. restauraConfig = new ConfiguracaoGlobal();
  341. restauraConfig = (ConfiguracaoGlobal) xstream.fromXML(xml);
  342.  
  343. setStringJDBC(restauraConfig.getStringJDBC());
  344. setStringBanco(restauraConfig.getStringBanco());
  345. setNomeBanco(restauraConfig.getNomeBanco());
  346. setBdLogin(restauraConfig.getLoginBanco());
  347. setBdSenha(restauraConfig.getSenhaBanco());
  348.  
  349. }
  350.  
  351. //método que inicializa a conexão com o banco e retorna um objeto 'conexao' com os dados do servidor
  352. public Connection abreConexao(){
  353. Connection conn = null;
  354. try{
  355. Class.forName(getStringJDBC());
  356. conn = DriverManager.getConnection(getStringBanco()+getNomeBanco(), getBdLogin(), getBdSenha());
  357. }
  358. catch(ClassNotFoundException e){
  359. JOptionPane.showMessageDialog(null, e, "Classe não encontrada!", 0);
  360. }
  361. catch(SQLException e){
  362. JOptionPane.showMessageDialog(null, e, "Erro de SQL!", 0);
  363. }
  364.  
  365. return conn;
  366. }
  367.  
  368. //método que fecha a conexão com o banco
  369. public void fechaConexao(Connection conn){
  370. try{
  371. conn.close();
  372. }
  373. catch(SQLException erro){
  374. JOptionPane.showMessageDialog(null, erro, "Erro ao fechar a conexão com o banco!", 0);
  375. }
  376. }
  377.  
  378.  
  379.  
  380.  
  381. public String getStringJDBC() {
  382. return stringJDBC;
  383. }
  384.  
  385. public void setStringJDBC(String stringJDBC) {
  386. this.stringJDBC = stringJDBC;
  387. }
  388.  
  389. public String getStringBanco() {
  390. return stringBanco;
  391. }
  392.  
  393. public void setStringBanco(String stringBanco) {
  394. this.stringBanco = stringBanco;
  395. }
  396.  
  397. public String getNomeBanco() {
  398. return nomeBanco;
  399. }
  400.  
  401. public void setNomeBanco(String nomeBanco) {
  402. this.nomeBanco = nomeBanco;
  403. }
  404.  
  405. public String getBdLogin() {
  406. return bdLogin;
  407. }
  408.  
  409. public void setBdLogin(String bdLogin) {
  410. this.bdLogin = bdLogin;
  411. }
  412.  
  413. public String getBdSenha() {
  414. return bdSenha;
  415. }
  416.  
  417. public void setBdSenha(String bdSenha) {
  418. this.bdSenha = bdSenha;
  419. }
  420.  
  421.  
  422.  
  423.  
  424.  
  425. }
  426.  
  427. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  428. at java.io.File.<init>(File.java:277)
  429. at classes_utilitarias.AlteraFundo.<init>(AlteraFundo.java:15)
  430. at formularios.FrmPrincipal.initComponents(FrmPrincipal.java:91)
  431. at formularios.FrmPrincipal.<init>(FrmPrincipal.java:64)
  432. at formularios.FrmLogin.ir(FrmLogin.java:230)
  433. at formularios.FrmLogin.bt_entrarActionPerformed(FrmLogin.java:137)
  434. at formularios.FrmLogin.access$000(FrmLogin.java:20)
  435. at formularios.FrmLogin$1.actionPerformed(FrmLogin.java:69)
  436. at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
  437. at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
  438. at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
  439. at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
  440. at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
  441. at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
  442. at java.awt.Component.processMouseEvent(Component.java:6527)
  443. at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
  444. at java.awt.Component.processEvent(Component.java:6292)
  445. at java.awt.Container.processEvent(Container.java:2234)
  446. at java.awt.Component.dispatchEventImpl(Component.java:4883)
  447. at java.awt.Container.dispatchEventImpl(Container.java:2292)
  448. at java.awt.Component.dispatchEvent(Component.java:4705)
  449. at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
  450. at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
  451. at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
  452. at java.awt.Container.dispatchEventImpl(Container.java:2278)
  453. at java.awt.Window.dispatchEventImpl(Window.java:2739)
  454. at java.awt.Component.dispatchEvent(Component.java:4705)
  455. at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
  456. at java.awt.EventQueue.access$400(EventQueue.java:97)
  457. at java.awt.EventQueue$3.run(EventQueue.java:697)
  458. at java.awt.EventQueue$3.run(EventQueue.java:691)
  459. at java.security.AccessController.doPrivileged(Native Method)
  460. at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
  461. at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
  462. at java.awt.EventQueue$4.run(EventQueue.java:719)
  463. at java.awt.EventQueue$4.run(EventQueue.java:717)
  464. at java.security.AccessController.doPrivileged(Native Method)
  465. at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
  466. at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
  467. at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
  468. at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
  469. at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
  470. at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
  471. at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
  472. at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
  473. CONSTRUÍDO COM SUCESSO (tempo total: 50 segundos)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement