Erro no sistema de Login no Java e NetBeans

8 respostas
W

Galera, preciso de ajuda no meu codigo, não consigo achar o erro.

O Codigo é o seguinte, tem uma tela de login com acesso via arquivo txt, porém, o formulario não ta funcinando, vou postar o codigo;

Arquivos para Donwload

``http://midiacloud.com/java/InEvents.zip

nesse caso, crio uma pasta na unidade C com o nome trabalhoPOE1
e dentro dessa pasta vai o arquivo Login.txt

Se alguem puder ajudar, fico muito agradecido

8 Respostas

paulork

Posta o Stacktrace do erro…

W

[quote=“paulork, post:2, topic:337667”]
Stacktrace

Exception in thread AWT-EventQueue-0 java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: inevents.AcessarArquivo

at inevents.Login$eventoEntrar.actionPerformed(Login.java:104)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6516)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6281)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4872)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4698)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4698)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)

at java.awt.EventQueue.access$300(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:706)

at java.awt.EventQueue$3.run(EventQueue.java:704)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:720)

at java.awt.EventQueue$4.run(EventQueue.java:718)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
paulork

Em primeiro lugar na classe AcessarArquivo está faltando setar o pacote (package inevents;)…
Se não adiantar tentar e estiver usando Netbeans, desative o “Compilar ao salvar”… As vezes um limpar e construir também ajuda… Aqui rodou blz…

W

ao entrar com login e senha ele foi para TelePrincipal?

paulork

Amigo, sua classe TelaPrincipal não tem nada… vai precisar implementar algo lá pra fazer ela aparecer…
Se fosse um JFrame você usaria “new NewJFrame().setVisible(true);” e ele mostraria a tela…

W

Consegue me mandar de volta o codigo seu onde ta certo, por favor?

paulork

Em primeiro lugar na classe AcessarArquivo está faltando setar o pacote (package inevents;)…

Foi só isso que alterei… e um limpar e construir… não alterei mais nada… testa lá amigo

W

Agora me deparo com mais problemas, preciso colocar um titulo e uma imagem abaixo do menu, podem me ajudar?

import java.awt.Color;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import javax.swing.BoxLayout;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JCheckBoxMenuItem;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JRadioButton;

import javax.swing.JTextField;

import javax.swing.ImageIcon;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

/**
*

  • @author Aluno
    */
    class TelaPrincipal extends JFrame {
private JTextField dataRegistro;
private JTextField cliente;
private JComboBox vendedor;
private ButtonGroup btnGroupTipo;
private JRadioButton vista;
private JRadioButton parcelado;
private JCheckBox aberto;
private JCheckBox fechado;
private JCheckBox solucionado;
private JCheckBox aguardando;
private JButton voltar;
private JButton salvar;
public TelaPrincipal() {
    super("Cadastro de Produtos");
    setSize(900, 500);
    setVisible(true);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    
    
 
    JMenuBar menu = new JMenuBar();
    setJMenuBar(menu);
JMenu menuArquivo = new JMenu("Arquivo");
    JMenu menuEditar = new JMenu("Editar");
    JMenu menuExibir = new JMenu("Exibir");
    JMenu menuAjuda = new JMenu("Ajuda");
    menu.add(menuArquivo);
    menu.add(menuEditar);
    menu.add(menuExibir);
    menu.add(menuAjuda);
    
    JMenuItem itemSairArquivo = new JMenuItem("Sair");
    menuArquivo.add(itemSairArquivo);
    
    JMenuItem itemEditarCliente = new JMenuItem("EditarCliente");
    JMenuItem itemEditarproduto = new JMenuItem("EditarProduto");
    menuEditar.add(itemEditarCliente);
    menuEditar.add(itemEditarproduto);
    
    Container cPrincipal = getContentPane();
    cPrincipal.setLayout(new FlowLayout(FlowLayout.CENTER));
    
    Container cMeio = new Container();
    cMeio.setLayout(new GridLayout(6, 2));
    cMeio.add(new JLabel("Data do Registro:"));
    dataRegistro = new JTextField();
    cMeio.add(dataRegistro);
cMeio.add(new JLabel("Cliente:"));
    cliente = new JTextField();
    cMeio.add(cliente);
cMeio.add(new JLabel("Vendedor:"));
    String ComboVendedor[] = {"Jose Ronaldo", "Maristela", "Raimundo"};
    vendedor = new JComboBox(ComboVendedor);
    cMeio.add(vendedor);
cMeio.add(new JLabel("Forma de Pagamento:"));
    Container radioBtns = new Container();
    radioBtns.setLayout(new FlowLayout(FlowLayout.CENTER));
    btnGroupTipo = new ButtonGroup();
    vista = new JRadioButton(" A vista");
    parcelado = new JRadioButton("Parcelado");
btnGroupTipo.add(vista);
    btnGroupTipo.add(parcelado);
radioBtns.add(vista);
    radioBtns.add(parcelado);
cMeio.add(radioBtns);
cMeio.add(new JLabel("Status:"));
   Container status = new Container();
   status.setLayout(new FlowLayout(FlowLayout.CENTER));
aberto = new JCheckBox("Aberto");
    //cMeio.add(aberto);
fechado = new JCheckBox("Fechado");
    //cMeio.add(fechado);
solucionado = new JCheckBox("Solucionado");
    //cMeio.add(solucionado);
aguardando = new JCheckBox("Aguardando");
   // cMeio.add(aguardando); 
   
   status.add(aberto);
   status.add(fechado);
   status.add(solucionado);
   status.add(aguardando);
   cMeio.add(status);
voltar = new JButton("Voltar");
    salvar = new JButton("Salvar");
    cMeio.add(voltar);
    cMeio.add(salvar);

    cPrincipal.add(cMeio);
voltar.addActionListener(new eventoVoltar());
    salvar.addActionListener(new eventoSalvar());
}
public static void main(String[] args) {
    // TODO code application logic here
    new TelaPrincipal();
}
private class eventoSalvar implements ActionListener {
@Override
    public void actionPerformed(ActionEvent e) {
String auxDataRegistro = (String) dataRegistro.getText();
        String auxCliente = cliente.getText();
String auxVendedor = (String) vendedor.getSelectedItem();
        // String auxVendedor = "";
String auxPagamento = "";
if (vista.isSelected()) {
            auxPagamento = vista.getText();
        }
if (parcelado.isSelected()) {
            auxPagamento = parcelado.getText();
        }
String auxEstado = "";
if (aberto.isSelected()) {
            auxEstado = aberto.getText();
        }
if (fechado.isSelected()) {
            auxEstado = fechado.getText();
        }
        if (solucionado.isSelected()) {
            auxEstado = solucionado.getText();
        }
        if (aguardando.isSelected()) {
            auxEstado = aguardando.getText();
        }
        
        ArrayList Tabela = new ArrayList();
        Tabela.add(auxDataRegistro);
        Tabela.add(auxCliente);
        Tabela.add(auxVendedor);
        Tabela.add(auxPagamento);
        Tabela.add(auxEstado);
        
        AcessoArquivo acessoArquivo = new AcessoArquivo();
        Boolean lo = acessoArquivo.escreverArquivo("arquivo.txt", Tabela);
        
        if(lo){
            JOptionPane.showMessageDialog(null, "Salvo com sucesso!","Salvo",1);
        }
        else{
            JOptionPane.showMessageDialog(null, "Erro ao salvar,tente novamente!", "Erro", 0);
        }
    }
}
private class eventoVoltar implements ActionListener {
@Override
    public void actionPerformed(ActionEvent e) {
        new Login();
        dispose();
    }
}

}

Outra duvida, como consigo colocar cor no Background das telas?
Tentei isso aqui:

frame.getContentPane().setBackground(new Color(255,255, 255));

e não deu certo, para entenderem o que fiz, to mandando o codigo todo

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import static javax.swing.JFrame.EXIT_ON_CLOSE;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class Login extends JFrame {

private JTextField campoUsuario = new JTextField();
private JPasswordField campoSenha = new JPasswordField();
private JComboBox campoDepartamento = new JComboBox();
private JButton entrar = new JButton("Entrar");
private JButton limpar = new JButton("Limpar");
public Login() {
    
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    BorderLayout layout = new BorderLayout();
    GridLayout conteudo = new GridLayout(5, 2, 5, 5);
    layout = new BorderLayout(300, 120);
    JPanel painel = new JPanel(layout);
    JPanel painelcentro = new JPanel(conteudo);
    
    painel.add(new JLabel("*****CADASTRO DE CLIENTES*****"), BorderLayout.NORTH);
    painel.add(new JLabel(""), BorderLayout.SOUTH);
    painel.add(new JLabel(""), BorderLayout.EAST);
    painel.add(new JLabel(""), BorderLayout.WEST);
    frame.getContentPane().add(painel);
painelcentro.add(new JLabel("Usuario:"));
    campoUsuario = new JTextField();
    painelcentro.add(campoUsuario);
painelcentro.add(new JLabel("Senha:"));
    campoSenha = new JPasswordField();
    painelcentro.add(campoSenha);
painelcentro.add(new JLabel("Departamento:"));
    String ComboDepartamento[] = {"", "Gerente", "Manutenção", "Vendas"};
    campoDepartamento = new JComboBox(ComboDepartamento);
    painelcentro.add(campoDepartamento);
entrar = new JButton("Entrar");
    limpar = new JButton("Limpar");
    painelcentro.add(entrar);
    painelcentro.add(limpar);
painel.add(painelcentro, BorderLayout.CENTER);
entrar.addActionListener(new eventoEntrar());
    limpar.addActionListener(new eventoLimpar());
//frame.pack();
    frame.setLocation(900, 500);
    frame.setSize(900, 500);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.getContentPane().setBackground(new Color(255,255, 255));
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private class eventoEntrar implements ActionListener {
@Override
    public void actionPerformed(ActionEvent e) {
        String senha = new String(campoSenha.getPassword());
        String[] auxLinhas = null;
        if (e.getSource() == entrar) {
AcessoArquivo acessoArquivo = new AcessoArquivo();
            ArrayList<String> dadosUsuarios = acessoArquivo.lerArquivo("Login.txt");
            for (String aux : dadosUsuarios) {
                //separando a String (linha) inteira do arquivo pelo caracter ";"
                //Ou seja, onde houver um ";" a(s) palavra(s) sucessoras ficarão na posição posterir do array
                auxLinhas = aux.split(";");
}
            if (auxLinhas[0].equals(campoUsuario.getText()) && auxLinhas[1].equals(senha) && auxLinhas[2].equals(campoDepartamento.getSelectedItem()) ) {
                JOptionPane.showMessageDialog(null, "Login efetuado com sucesso! Bem vindo.");
                dispose();
                new TelaPrincipal();
            } else {
                campoUsuario.setText("");
                campoSenha.setText("");
                JOptionPane.showMessageDialog(null, "Erro ao efetuar Login! Tente novamente", "Erro", 0);
            }
          
        }
    }
}
private class eventoLimpar implements ActionListener {
@Override
    public void actionPerformed(ActionEvent e) {
        campoUsuario.setText("");
        campoSenha.setText("");
        campoDepartamento.setSelectedItem("Gerente");
}
}
private class EntrarTelaIncial implements ActionListener {
@Override
    public void actionPerformed(ActionEvent e) {
new TelaPrincipal();
        dispose();
    }
}
public static void main(String[] args) {
    new Login();
}

}

Criado 25 de outubro de 2016
Ultima resposta 27 de out. de 2016
Respostas 8
Participantes 2