Ajuda com Jbutton

3 respostas
R

Ola pessoal,
Sou mais um novato no mundo do Java e to querendo conheçer muito bem mais sobre ele.

To começando um novo projeto e queria a ajuda de vocês.
Resumindo:
Criei um Jframe e queria fazer com que o botão que fiz executasse uma classe que se conecta ao banco de dados e verifica os dados de usuário e senha.

package warjava;

public class login extends javax.swing.JFrame {

    public login() {
        initComponents();
    }
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        Login = new javax.swing.JLabel();
        CampoLogin = new javax.swing.JFormattedTextField();
        Senha = new javax.swing.JLabel();
        CampoSenha = new javax.swing.JPasswordField();
        BotaoConectar = new javax.swing.JButton();
        Imagem = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("WarJava Beta 1.00");
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setResizable(false);

        Login.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Login.setText("LOGIN");

        CampoLogin.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        CampoLogin.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                CampoLoginActionPerformed(evt);
            }
        });

        Senha.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Senha.setText("SENHA");

        CampoSenha.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        BotaoConectar.setText("Conectar");
        BotaoConectar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        BotaoConectar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotaoConectarActionPerformed(evt);
            }
        });

        Imagem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/warjava/arquivos/Imagem.Login.jpg"))); // NOI18N
        Imagem.setText("Imagem");
        Imagem.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(Imagem, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(Senha, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addGap(71, 71, 71)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(Login, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(CampoSenha, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(CampoLogin, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(BotaoConectar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addGap(79, 79, 79))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(Imagem)
                .addGap(29, 29, 29)
                .addComponent(Login, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(CampoLogin)
                .addGap(18, 18, 18)
                .addComponent(Senha)
                .addGap(5, 5, 5)
                .addComponent(CampoSenha)
                .addGap(18, 18, 18)
                .addComponent(BotaoConectar)
                .addGap(34, 34, 34))
        );

        pack();
    }// </editor-fold>

    private void BotaoConectarActionPerformed(java.awt.event.ActionEvent evt) {                                              
        String actionCommand = BotaoConectar.getActionCommand();
        
    }                                             

    private void CampoLoginActionPerformed(java.awt.event.ActionEvent evt) {

    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new login().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton BotaoConectar;
    private javax.swing.JFormattedTextField CampoLogin;
    private javax.swing.JPasswordField CampoSenha;
    private javax.swing.JLabel Imagem;
    private javax.swing.JLabel Login;
    private javax.swing.JLabel Senha;
    // End of variables declaration

}

3 Respostas

Gustavo_Marques

O código já está encaminhado.

Só implementar essa parte:

BotaoConectar.setText("Conectar"); BotaoConectar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); BotaoConectar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { //faça aqui sua busca no banco } });

Porém recomendo criar uma classe que implemente o ActionListner e passá-la como referencia para BotaoConectar.addActionListener(); ao invés de criar uma implementação ‘inline’

att

R

Eu já criei essa classe só não sei como fazer a ligação.

Codigo da classe que vai fazer a busca.

package warjava;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Conecta {
public Conecta () { } 
   public static Conecta con = null;


    public static void Conectar() {
    System.out.println("Conectando ao banco...");
    try {
       Class.forName("com.mysql.jdbc.Driver");
       con =  (Conecta) DriverManager.getConnection("jdbc:mysql:// IP","USER","PASSWORD");
       System.out.println("Conectado.");
    } catch (ClassNotFoundException ex) {
    System.out.println();
    Logger.getLogger(Conecta.class.getName()).log(Level.SEVERE, null, ex);
    } catch(SQLException e) {
    System.out.println(e);
    throw new RuntimeException(e);
    }
}
}
Gustavo_Marques

Dê uma estudada em jdbc.
Não é só conectar no banco, mas você precisa retornar essa conexão para ser usadas na consulta. Seu metodo conectar precis terminar com return conexao;

Faça uma classe que só conecte o banco e retorne essa conexão (padrão factory)
Depois crie uma classe que utilize essa conexão para fazer as consultas (padrão DAO)
Um exemplo de DAO voce pode conferir aqui: http://programadorprofissional.blogspot.com.br/2012/09/crud-no-banco-de-dados-com-java-e-jdbc.html

Essas duas classes acima não tem nada a haver com swing, elas apenas oferecem serviços de acesso a dados.

Agora use o DAO no actionperformed

BotaoConectar.setText("Conectar"); BotaoConectar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); BotaoConectar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Connection con = Conexao.conectar(); new DAO(con).buscar(); } });

Criado 3 de novembro de 2012
Ultima resposta 3 de nov. de 2012
Respostas 3
Participantes 2