Boa tade pessoal, tô com um trauma mui grande, estou com pgm em java pra faculdade q tá dando um trauma q não consigo ver o erro, alguém pode dar um help? Aqui não tem como anexar né?, vou tentar colocar as classes q está dando trauma.
desde já mui grato.
package business;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import presentation.*;
import dao.*;
public class ControleEntrada implements ActionListener {
//mudar para a nova classe dao com acesso ao banco
private EstacionamentoBD dao=EstacionamentoBD.getInstance();
private static ControleEntrada singleton=null;
private VisaoControlePrincipal vp;
private VisaoEntrada1 ve;
public static ControleEntrada getInstance(){
if(singleton==null)
singleton=new ControleEntrada();
return singleton;
}
private ControleEntrada(){}
public void configuraTela(VisaoEntrada1 ve){
this.ve=ve;
ve.setOuvinte(this);
}
public void habilitaVisaoEntrada(){
ve.setModal(true);
ve.limpaJanela();
ve.setVisible(true);
}
public void actionPerformed(ActionEvent eve) {
String comando=eve.getActionCommand();
if(comando.equals("okE")){
try{
if(dao.registrarEntrada(ve.leDados(),ve.getDate())){
//if(dao.inserirCarro(ve.leDados())){//ieu
//dao.gravaLista();
JOptionPane.showMessageDialog(null,"veículo inserido com sucesso");
}
else{
JOptionPane.showMessageDialog(null,"não foi possível inserir");
}}
catch(NumberFormatException exp){
JOptionPane.showMessageDialog(null,"Dados de entrada incorretos!");
}
finally{
ve.setVisible(false);
}
}
else if(comando.equals("carro")){
ve.habilitaCaixas(true,false);
ve.getPortascc().setText("Portas:");
ve.setTipo("carro");
}else if(comando.equals("moto")){
ve.getPortascc().setText("CC :");
ve.setTipo("moto");
ve.habilitaCaixas(false,true);
}
else if(comando.equals("LimparE")){
ve.setVisible(false);
}
}
}
ele tem q pegar desta classe aqui.
package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import business.*;
//import business.entities.Projeto;
public class EstacionamentoBD {
private static EstacionamentoBD singleton=null;
Connection con;
public static EstacionamentoBD getInstance(){
if(singleton==null)
singleton=new EstacionamentoBD();
return singleton;
}
private EstacionamentoBD(){
con=ConexaoBD.getConnection();
}
public boolean inserirCarro(Carro carro){
String sql="";
//Monta query de inserção
sql+="INSERT INTO veiculo(placa,cor,campoId,tipoVeiculo) VALUES";
sql += "(";
sql += "'"+carro.getPlaca()+"'";
sql += ",";
sql += "'"+carro.getCor()+"'";
sql += "(";
sql += "'"+carro.getNumPortas()+"'";
sql += ",";
sql += "'"+carro.getTipo()+"'";
sql += ")";
//Executa a query que foi montada
try{
Statement stmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
return true;
}
catch (SQLException e)
{
// Houve algum erro, imprime a exeção, e retorna falso;
e.printStackTrace();
return false;
}
}
public boolean inserirMoto(Moto moto){
String sql="";
//Monta query de inserção
sql+="INSERT INTO veiculo(placa,cor,campoId,tipoVeiculo) VALUES";
sql += "(";
sql += "'"+moto.getPlaca()+"'";
sql += ",";
sql += "'"+moto.getCor()+"'";
sql += "(";
sql += "'"+moto.getCc()+"'";
sql += ",";
sql += "'"+moto.getTipo()+"'";
sql += ")";
//Executa a query que foi montada
try{
Statement stmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
return true;
}
catch (SQLException e)
{
// Houve algum erro, imprime a exeção, e retorna falso;
e.printStackTrace();
return false;
}
}
public List<Veiculo> listar(){
String sql ="";
List<Veiculo> veiculos=new ArrayList<Veiculo>();
//Monta query de busca
sql +="SELECT * FROM veiculo";
//Executa a query que foi montada
try{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
//Enquanto houverem alunos
while(rs.next())
{
//Monta o veiculo encontrado
String placa=rs.getString("placa");
String cor=rs.getString("cor");
int campoIdentificacao=rs.getInt("campoId");
String tipoVeiculo=rs.getString("tipoVeiculo");
if(tipoVeiculo.equals("c")){
Carro car=new Carro();
car.setCarro(placa, cor,campoIdentificacao);
veiculos.add(car);
}
else{
Moto moto=new Moto();
moto.setMoto(placa, cor,campoIdentificacao);
veiculos.add(moto);
}
rs.close();
stmt.close();
}
return veiculos;
}
catch (SQLException e)
{
// Houve algum erro, imprime a exeção, e retorna nulo;
e.printStackTrace();
return null;
}
}
}
mas tá pegando desssa outra
package dao;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import presentation.VisaoControlePrincipal;
import business.Carro;
import business.Data;
import business.Moto;
import business.Veiculo;
public class EstacionamentoDao{
private static EstacionamentoDao singleton=null;
private VisaoControlePrincipal vc;
public static EstacionamentoDao getInstance(){
if(singleton==null)
singleton=new EstacionamentoDao();
return singleton;
}
private List <Veiculo> lista;
public EstacionamentoDao(){
lista=new ArrayList<Veiculo>();
}
public boolean registrarEntrada(Veiculo v, Data ent){
try{
v.setEntrada(ent);
if(lista.add(v))
return true;
else
return false;
}catch(NullPointerException nfe){
JOptionPane.showMessageDialog(null,"Não foi possível registar entrada!");
}
return false;
}
public int registrarSaida(String p, Data sai){
int preco=0;
for (int i=0;i<lista.size();i++)
if (lista.get(i).getPlaca().equals(p)){
lista.get(i).setSaida(sai);
preco = lista.get(i).calcularPreco();
lista.remove(i);
if(preco<0){
JOptionPane.showMessageDialog(null,"Data de saída inválida!");
return 0;
}
else
return preco;
}
JOptionPane.showMessageDialog(null,"Nao encontrado");
return 0;
}
public String mostraVeiculos(){
String recebe=null;
String palavra="";
if(lista.isEmpty()){
return "Estacionamento vazio!";
}
else{
for(int i=0;i<lista.size();i++){
recebe=lista.get(i).getPlaca();
recebe+=" \t\t ";
recebe+=lista.get(i).getCor();
recebe+="\n";
palavra+=recebe;
}
return palavra;
}
}
public Object getLista() {
return lista;
}
public void setLista(List<Veiculo> lista) {
this.lista = lista;
}
public void gravaLista(){
try{
FileOutputStream fos=new FileOutputStream("listaEstacionamento.bin");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(this.getLista());
}
catch(IOException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,"nao foi possivel gravar dados");
}
}
public void recuperaLista(){
try{
FileInputStream fis=new FileInputStream("listaEstacionamento.bin");
ObjectInputStream ois=new ObjectInputStream(fis);
Object objeto=ois.readObject();
lista=(List<Veiculo>) objeto;
this.setLista(lista);
}
catch(IOException eve){
JOptionPane.showMessageDialog(null, "Arquivo nao encontrado! \n O programa irá criar um arquivo.");
}
catch(ClassNotFoundException cnfe){
JOptionPane.showMessageDialog(null, "Erro fatal");
cnfe.printStackTrace();
System.exit(1);
}
}
public void exportaLista(VisaoControlePrincipal vc){
int estado=0;
try {
File arquivo=vc.escolheArquivo();
if(!(arquivo==null)){
//Abre um escritor sobre um arquivo escolhido
FileWriter fw=new FileWriter(arquivo);
BufferedWriter bw=new BufferedWriter(fw);
//cria uma booleana que indica se está escrevendo a primeira linha
boolean primeiraLinha=true;
for(Veiculo v: lista ){
//Recupera placa, cor,data integral e portas ou cilindradas
String pl=v.getPlaca();
String cor=v.getCor();
int ano=v.getEntrada().getAno();
int mes=v.getEntrada().getMes();
int dia=v.getEntrada().getDia();
int hora=v.getEntrada().getHora();
int min=v.getEntrada().getMin();
int seg=v.getEntrada().getSeg();
if(v instanceof Carro){
Carro c=new Carro();
c=(Carro) v;
estado=c.getNumPortas();
}
else{
Moto m=new Moto();
m=(Moto)v;
estado=m.getCc();
}
if(primeiraLinha)
primeiraLinha=false;
else
bw.newLine();
//Escreve o conteudo do arquivo separado por vírgula
bw.write(pl+","+cor+","+dia+","+mes+","+ano+","+hora+","+min+","+seg+","+estado);
}
JOptionPane.showMessageDialog(null,"Arquivo exportado!");
bw.flush();
bw.close();
fw.close();
}
}
catch(IOException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,"erro");
}
}
public void importaLista(VisaoControlePrincipal vc){
try{
File arquivo=vc.escolheArquivo();
if(! (arquivo==null)){
//abre um leitor sobre o arquivo escolhido
FileReader fr=new FileReader(arquivo);
BufferedReader br=new BufferedReader(fr);
//Declara uma variável para guardar cada linha
String line;
//Enquanto cada linha for diferente de nulo
while((line=br.readLine())!=null){
//Quebra a linha por "vírgula" e recupera dados
String[]vet=line.split(",");
String placa=vet[0];
String cor=vet[1];
int dataDia=Integer.parseInt(vet[2]);
int dataMes=Integer.parseInt(vet[3]);
int dataAno=Integer.parseInt(vet[4]);
int dataHora=Integer.parseInt(vet[5]);
int dataMin=Integer.parseInt(vet[6]);
int dataSeg=Integer.parseInt(vet[7]);
int portaCC=Integer.parseInt(vet[8]);
/*verifico os objetos que serão retornados, através de um algoritmo implementado com a JComboBox que limita a entrada do usuário
em relação ao número de portas*/
Data d=new Data();
if(portaCC==4 || portaCC == 2 || portaCC == 5 || portaCC == 6){
Carro vCar=new Carro();
vCar.setCarro(placa, cor, portaCC);
d.setData(dataDia, dataMes, dataAno, dataHora, dataMin, dataSeg);
vCar.setEntrada(d);
lista.add(vCar);
JOptionPane.showMessageDialog(null, "Carro importado");
}
else{
Moto moto=new Moto();
moto.setMoto(placa, cor, portaCC);
d.setData(dataDia, dataMes, dataAno, dataHora, dataMin, dataSeg);
moto.setEntrada(d);
lista.add(moto);
JOptionPane.showMessageDialog(null, "moto importada");
}
}
br.close();
fr.close();
}
}
catch(IOException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "erro ao importar dados");
}
}
}