Separar Telas por Login

8 respostas
A

Boa tarde,

eu estou montando um programa para uma clinica medica (estou usando o NetBeans 5.5) e o banco de dados é o Access.

Eu criei o nome de usuario e senha no banco de dados, mas gostaria de saber como eu separo as telas por login / senha.

Exemplo: (a secretaria so teria acesso a algumas telas).

Alguem sabe como eu posso fazer isso???

Grata

8 Respostas

renamed

Bom, eu lembro que uma vez eu fiz de uma forma que não sei se a galera aqui vai gostar…

Eu crei um objeto chamado sessão… antes de qualquer tela ser exibida ela verificava se sessão era diferente de nulo…
Esse objeto sessão só era instanciado pela classe responsável pelo login com os dados do usuário que fez o login…

e é isso, não sei se é a melhor forma de se fazer, mas foi assim que fiz ^^

A

Ola Renan…

Vc tem o codigo??? Pode posta-lo aki ou enviar p mim?

Grata

peczenyj

Vc pode criar um componente de autenticação e liberar determinada tela para determinado login somente se ele tem as devidas permissões.

Marky.Vasconcelos

Eu criei algo para meu sistema que é o seguinte no inicio ele exibe a tela de login e pede para uma interface buscar um User que tem um roleName.
Nos menus eu marquei com annotations qual componente deve ser exibido por roleName. Após obter o User eu comparo com essas anotações e setVisible(false) nos objetos que não podem ver.

O problema é que se tiver outro botão que leve a mesma tela não vai funcionar. Ele apenas some o componente marcado.

A

Esse componente eu crio denro da tela de login???

Se vcs puderem me ajudar ficarei muito grata

Abaixo segue o codigo da tela de login que estou usando:

package cadastros;

import cadastros.TelaPrincipal;

import java.awt.Container;

import java.awt.Graphics;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import utilitarios.conexao;

import utilitarios.UsingImageBackground;

import java.sql.*;

/**
*

  • @author
    */
    public class login extends JFrame {

    int conta=0;
    conexao con_login;

    /** Creates new form login */
    
    public login() {
    
    initComponents();
    
    con_login = new conexao();
    
    con_login.conecta();
    

    }

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      
      */
      
      // 
      
      private void initComponents() {
      
      jPanel1 = new JPanel() {
      
      public void paintComponent(Graphics g)	{
      
      ImageIcon img = new ImageIcon(C:/Centro Medico Bem Viver/Imagens/estetoscopio1.jpg);
      
      g.drawImage(img.getImage(), 0, 0, null);
      
      super.paintComponent(g);
      
      }
      
      };
      
      jLabel2 = new javax.swing.JLabel();
      
      tf_senha = new javax.swing.JPasswordField();
      
      jButton2 = new javax.swing.JButton();
      
      jButton1 = new javax.swing.JButton();
      
      tf_login = new javax.swing.JTextField();
      
      label_senha = new javax.swing.JLabel();
      
      label_login = new javax.swing.JLabel();
      
      jLabel1 = new javax.swing.JLabel();
      
      setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
      
      jPanel1.setOpaque(false);
      
      jLabel2.setFont(new java.awt.Font(Tahoma, 3, 14));
      
      jLabel2.setForeground(new java.awt.Color(255, 255, 255));
      
      jLabel2.setText(Centro M\u00e9dico Bem Viver);
      
      jButton2.setFont(new java.awt.Font(Tahoma, 1, 12));
      
      jButton2.setText(Limpar);
      
      jButton2.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      jButton2ActionPerformed(evt);
      
      }
      
      });
      
      jButton1.setFont(new java.awt.Font(Tahoma, 1, 12));
      
      jButton1.setText(Entrar);
      
      jButton1.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      jButton1ActionPerformed(evt);
      
      }
      
      });
      
      tf_login.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      tf_loginActionPerformed(evt);
      
      }
      
      });
      
      label_senha.setFont(new java.awt.Font(Tahoma, 1, 12));
      
      label_senha.setForeground(new java.awt.Color(255, 255, 255));
      
      label_senha.setText(Senha:);
      
      label_login.setFont(new java.awt.Font(Tahoma, 1, 12));
      
      label_login.setForeground(new java.awt.Color(255, 255, 255));
      
      label_login.setText(Login:);
      
      jLabel1.setFont(new java.awt.Font(Tahoma, 3, 18));
      
      jLabel1.setForeground(new java.awt.Color(0, 0, 204));
      
      jLabel1.setText(Tela de Acesso);
      
      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
      
      jPanel1.setLayout(jPanel1Layout);
      
      jPanel1Layout.setHorizontalGroup(
      
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGap(41, 41, 41)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(label_login)
      
      .addComponent(label_senha))
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
      
      .addComponent(tf_senha)
      
      .addComponent(tf_login, javax.swing.GroupLayout.DEFAULT_SIZE, 122, Short.MAX_VALUE))
      
      .addGap(34, 34, 34)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(jButton2)
      
      .addComponent(jButton1)))
      
      .addComponent(jLabel2)))
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGap(105, 105, 105)
      
      .addComponent(jLabel1)))
      
      .addContainerGap(49, Short.MAX_VALUE))
      
      );
      
      jPanel1Layout.setVerticalGroup(
      
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGap(21, 21, 21)
      
      .addComponent(jLabel1)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 41, Short.MAX_VALUE)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(label_login)
      
      .addComponent(tf_login, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addGap(17, 17, 17)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(label_senha)
      
      .addComponent(tf_senha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addGap(51, 51, 51))
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(jButton1)
      
      .addGap(17, 17, 17)
      
      .addComponent(jButton2)
      
      .addGap(46, 46, 46)))
      
      .addGap(4, 4, 4)
      
      .addComponent(jLabel2)
      
      .addGap(19, 19, 19))
      
      );
      
      jPanel1.getAccessibleContext().setAccessibleName(Sistema Centro Medico Bem Viver);
      
      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      
      getContentPane().setLayout(layout);
      
      layout.setHorizontalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      
      );
      
      layout.setVerticalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      
      );
      
      java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
      
      setBounds((screenSize.width-383)/2, (screenSize.height-268)/2, 383, 268);
      
      }//
      
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    
    tf_login.setText("");
    
    tf_senha.setText("");
    
    tf_login.requestFocus();
    

    }

    private void tf_loginActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    }
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    
    if (tf_login.getText().equals("") || tf_senha.getText().equals(""))
    
    JOptionPane.showMessageDialog(null, Os campos não podem estar vazios);
    
    else
    
    {
    
    if(conta <= 1)
    
    try
    
    {
    
    String sql = select * from login Where login like '”+
    
    tf_login.getText()+"‘and senha like’"+
    
    tf_senha.getText()+"’";
    
    con_login.executeSQL(sql);
    
    if (con_login.resultset.first())
    
    {
    
    JOptionPane.showMessageDialog(null,Olá, Tenha um bom dia!);
    
    new TelaPrincipal().setVisible(true);
    
    TelaPrincipal.lb_usuario.setText(con_login.resultset.getString(login));
    
    dispose();
    
    }
    
    else
    
    {
    
    conta++;
    
    if (conta == 1)
    
    JOptionPane.showMessageDialog(null,Senha Incorreta, digite novamente);
    
    else
    
    {
    
    JOptionPane.showMessageDialog(null,Login e Senha inválidos\n\nAcesso não permitido!);
    
    dispose();
    
    }
    
    }
    
    }
     
        catch(SQLException erro)
        {
         
             JOptionPane.showMessageDialog(null,"Erro= "+ erro);
         
         
        }
    

    }

    }

    /**

    • @param args the command line arguments
      */
      public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {

    login image = new login();
             image.setSize(380, 270);
     image.setVisible(true);
             
             
         }
     });
    

    }

    // Variables declaration - do not modify
    
    private javax.swing.JButton jButton1;
    
    private javax.swing.JButton jButton2;
    
    private javax.swing.JLabel jLabel1;
    
    private javax.swing.JLabel jLabel2;
    
    private javax.swing.JPanel jPanel1;
    
    private javax.swing.JLabel label_login;
    
    private javax.swing.JLabel label_senha;
    
    private javax.swing.JTextField tf_login;
    
    private javax.swing.JPasswordField tf_senha;
    
    // End of variables declaration
    

}

marcosvidolin

olá

dica coloque o código entre as tags CODE
Eu também preciso algo do tipo…

pedroroxd

Nada contra…
Mas access é 1 bosta… :smiley:
Dá 1 pesquisada ae, e ve se access vai suprir sua necessidade…
Para uma clínica médica, axo que teria de ser MySQL… tem senha, e tal, e aguenta bem + que access…

(Isso se for uma clínica médica de verdade) :stuck_out_tongue:

e anja, percebi que você é nova no guj… dê uma olhada em http://guj.com.br/posts/list/50115.java
existe uma tag chamada [ code ], que facilita seu código.
Ex.: (Última parte de seu código)

// Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JLabel label_login; private javax.swing.JLabel label_senha; private javax.swing.JTextField tf_login; private javax.swing.JPasswordField tf_senha; // End of variables declaration

WRYEL

Se for projeto de faculdade pequeno, você pode usar muito bem o SQLite, eu uso sempre em projetos pequenos e recomendo!
Baseado nas ideias acima citadas, você pode criar um objeto chamado Permissão onde retorna uma ArrayList de permissões. Sem querer complicar muito, você poderia dar uma olhada no padrão DAO que ele pode ajudar bastante também.

public class Permissao {

     //outros métodos.

     public ArrayList<Integer> getByUsuario(String usuario){
        ArrayList<Integer> permissoes = new ArrayList<Integer>();
        //sua lógica para pegar permissões...
        permissoes.add(resultSet.getInt('id'));
        return permissoes;
     }

}

[]'s

Criado 8 de dezembro de 2009
Ultima resposta 11 de dez. de 2009
Respostas 8
Participantes 7