Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Said Aldana en 6 Diciembre 2009, 18:00 pm



Título: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 18:00 pm
Hola a todos este proyecto es un proyecto que empecé hace una semana y acabo de terminar ayer, mi problema es que no me compila y lo tengo que entregar mañana por eso estoy muy muy nervioso porque si no lo hago compilar repruebo el semestre. Necesito ayuda amigos, digo apenas soy un principiante en esto de la programación, seguro también ayudaré, el ultimo tema que vi fue interfaz gráfica y con una ventana por eso mi proyecto trato hacerlo con una ventana. agradezco sus aportaciones.

La descripcion del problema es este:

Tengo una clase Banco
Una clase que lee Archivos
Tengo una clase Ejecutivo
Tengo una clase Cliente
Tengo una clase Contratos
Tengo una clase BancoVista
y por ultimo una clase ControladorBanco

Los clientes tienen una listaOrdenada de contratos, los ejecutivos de clientes y el banco de ejecutivos.
En mi controlador puse que el ejecutivo diera de alta contratos los eliminara, y los buscara, al igual con los clientes, que el ejecutivo agragara clientes los eliminara y los buscara, tambien busque que el calculara una función que se llama c que tengo en mi clase contratos. No estoy seguro de donde esta el error me parece que está en la clase leeArchivos. Mi clase leeArchivos tiene solo una función estática que tiene como parámetro el archivo y me regresa una matriz. ya que necesito introducir estos datos en una matriz ya que para calcular "c" es necesario buscar un valor y que me arroje el valor de la derecha por ejemplo:

Si tengo los sig num

.012 2
.0134 3
.243 5
...

si le doy el .243 necesito que me arroje el dato 5 como valor para calcular c ya que es un dato estadístico necesario para mi función calcula c.
mi función leeArchivos tiene un Scanner para leer, tengo un try y un catch y pues cuando lo meto en mi cotrolador declaro un archivo de tipo file y lo introdusco en mi función.

En mi compilador (Eclipse) dice que el error esta en el path pero pues ya intenté poniendole diversos paths y aún no lo lee asi que pienso el error debe estar en otro lado.

asi está mi clase leeArchivos:

public class leeArchivos {
public static double[][] leeDameTablanormal(File ent){
Scanner lec = null;
int m = 410;
int n = 2;
double[][] tablaNormal, res;

tablaNormal = new double [m][n];
try{
lec=new Scanner (ent);
}
catch (FileNotFoundException fnfe){
System.err.println (fnfe);
System.exit(-1);
}
lec=new Scanner (System.in);
for (int i=0; i<m;i++){
for (int j=0; j<n; j++)
tablaNormal[j]=lec.nextDouble ();
}
res = tablaNormal;
lec.close();
return res;
}
}

y asi lo estoy mandando llamar desde el controlador

import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import ClaseUtiles.CalculadoraCompleja;
public class BanaiControlador extends BanaiVista {
File ent = new File("tablaNormal.txt");
double [][] tablaNormal;
BancoBanai a;
EjecutivoBanai e;

public BanaiControlador (String titulo){
super (titulo);
ent = new File("tabla.txt");
a = new BancoBanai();
e=new EjecutivoBanai(34543,"Lidneisy");
tablaNormal = leeArchivos.leeDameTablanormal(ent);
bACliente.addActionListener (new EscuchaCliente ());
bECliente.addActionListener (new EscuchaCliente ());
bBCliente.addActionListener (new EscuchaCliente ());
bAContrato.addActionListener (new EscuchaContrato ());
bEContrato.addActionListener (new EscuchaContrato ());
bBContrato.addActionListener (new EscuchaContrato ());
bCalcula.addActionListener (new EscuchaC ());
}

private class EscuchaContrato implements ActionListener{
public void actionPerformed (ActionEvent ae){
.....


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Leyer en 6 Diciembre 2009, 19:18 pm
esto es un super derroche de memoria

Código
  1. bACliente.addActionListener (new EscuchaCliente ());
  2. bECliente.addActionListener (new EscuchaCliente ());
  3. bBCliente.addActionListener (new EscuchaCliente ());
  4. bAContrato.addActionListener (new EscuchaContrato ());
  5. bEContrato.addActionListener (new EscuchaContrato ());
  6. bBContrato.addActionListener (new EscuchaContrato ());


y que tipo de error de lanza?


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 19:53 pm
Lanza un File Not Found Exceptio y dice que el archivo no lo puede encontrar


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Leyer en 6 Diciembre 2009, 20:01 pm
Verifica que el archivo tabla.txt este fuera del src y del  bin


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 20:18 pm
lo acabo de sacar de la carpeta de src que era donde estaba y lo puse en la de JRE libreria, intenta abrir la ventana pero me sigue marcando el mismo error


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Leyer en 6 Diciembre 2009, 20:36 pm
en la carpeta de tu proyecto tienen que estar el src el bin y el archivo.txt


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 20:37 pm
ahh ok ya no me marca error de compilación muchas gracias, pero ahora el problema es que no me marca ningun error y no trabaja el programa


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Leyer en 6 Diciembre 2009, 20:43 pm
Bien. verifica esta segmento de code que colocaste

Código
  1. lec=new Scanner (System.in);
  2. for (int i=0; i<m;i++){
  3. for (int j=0; j<n; j++)
  4. tablaNormal[j]=lec.nextDouble ();
  5. }
  6. res = tablaNormal;
  7. lec.close();
  8. return res;
  9. }
  10. }


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 20:43 pm
No tengo ni idea de porque no funciona :( no escucha a mi controlador mi vista yo creo esta es mi vista, yo creo que el problema viene por el archivo, porque ni siquiera puedo probar mis clases:

import javax.swing.*;
import javax.swing.event.*;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;

public class BanaiVista extends JFrame {
   private JLabel lNumCliente, lNC, lNumCont,lVar,lTasa, lResultados,lResultados2,lResultados3,lNombreC, lDireccion, lNumeroCliente,lTelefono, lNumContrato, lDuracion, lPrecioP, lCantP, lProducto, lPrecA;
   protected JTextField tNumCliente,tNC, tNumCont,tVar, tTasa,tNombreC, tDireccion, tNumeroCliente,tTelefono, tNumContrato, tDuracion, tPrecioP, tCantP, tProducto,tPrecA;
   protected JTextArea tResultados, tResultados2;
   protected JTextField tResultados3;
   protected JPanel bCliente;
   protected JPanel clientes;
   protected JPanel bEjecutivo;
   protected JPanel ejecutivo;
   protected JPanel contratos;
   protected JPanel bContrato;
   protected JPanel calcularC;
   protected JPanel bCalcularC;
   protected JPanel contenedor;
   protected JButton bACliente, bECliente, bAContrato, bEContrato, bBCliente, bBContrato, bCalcula;
   private Font auxFont;
   
   public BanaiVista (String titulo){
      super (titulo);
      contenedor=new JPanel (new GridLayout (3,1));
      setContentPane (contenedor);
      setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
      setBackground (Color.BLACK);
      //Panel Cliente
      clientes=new JPanel ();
      clientes.setLayout (new GridLayout (3,4));
      clientes.setBackground(Color.BLUE);
      clientes.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
      //Label
      lNombreC=new JLabel ("Nombre: ");
      auxFont=lNombreC.getFont();
      lNombreC.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lNombreC.setForeground (Color.WHITE);
      lTelefono=new JLabel ("Teléfono: ");
      lTelefono.setForeground (Color.WHITE);
      lTelefono.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lNumeroCliente=new JLabel ("# Cliente: ");
      lNumeroCliente.setForeground (Color.WHITE);
      lNumeroCliente.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lDireccion=new JLabel ("Dirección: ");
      lDireccion.setForeground (Color.WHITE);
      lDireccion.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lResultados=new JLabel ("Resultado: ");
      lResultados.setForeground (Color.WHITE);
      lResultados.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      //TextField
      tNombreC=new JTextField (10);
      tNombreC.setForeground (Color.BLUE);
      tNombreC.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tTelefono=new JTextField (10);
      tTelefono.setForeground (Color.BLUE);
      tTelefono.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tNumeroCliente=new JTextField (10);
      tNumeroCliente.setForeground (Color.BLUE);
      tNumeroCliente.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tDireccion=new JTextField (10);
      tDireccion.setForeground (Color.BLUE);
      tDireccion.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tResultados=new JTextArea (5,5);
      tResultados.setForeground (Color.BLUE);
      tResultados.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      //Botones
      bCliente=new JPanel ();
      bCliente.setLayout (new FlowLayout ());
      bCliente.setBackground(Color.BLUE);
      bCliente.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
      bACliente=new JButton ("+ Cliente");
      bECliente=new JButton ("- Cliente");
      bBCliente=new JButton ("Buscar");
      bCliente.add (bBCliente);
      bCliente.add(bACliente);
      bCliente.add (bECliente);
      //Agregar
      clientes.add(lNumeroCliente);
      clientes.add(tNumeroCliente);
      clientes.add(lNombreC);
      clientes.add(tNombreC);
      clientes.add(lDireccion);
      clientes.add(tDireccion);
      clientes.add(lTelefono);
      clientes.add(tTelefono);
      clientes.add(lResultados);
      clientes.add(tResultados);
      clientes.add(bCliente);
      //Panel contrato
      contratos=new JPanel ();
      contratos.setLayout (new GridLayout (6,4));
      contratos.setBackground(Color.WHITE);
      contratos.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
      //Label
      lNumeroCliente=new JLabel ("Numero Cliente: ");
      lNumeroCliente.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lNumContrato=new JLabel("# Contrato: ");
      lNumContrato.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lDuracion=new JLabel ("Duración: ");
      lDuracion.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lPrecioP=new JLabel ("Precio Pactado: ");
      lPrecioP.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lCantP=new JLabel ("Cant. Pactada");
      lCantP.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lVar=new JLabel ("Varianza:");
      lVar.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lTasa=new JLabel ("Tasa: ");
      lTasa.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lResultados2=new JLabel ("Resultado: ");
      lResultados2.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lProducto=new JLabel ("Producto: ");
      lProducto.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lPrecA=new JLabel ("Precio Actual: ");
      lPrecA.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lNC=new JLabel ("# Cliente: ");
      lNC.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      //TextField
      tNumeroCliente=new JTextField (10);
      tNumeroCliente.setForeground (Color.BLUE);
      tNumContrato=new JTextField(10);
      tNumContrato.setForeground (Color.BLUE);
      tNumContrato.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tDuracion=new JTextField (10);
      tDuracion.setForeground (Color.BLUE);
      tDuracion.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tPrecioP=new JTextField (10);
      tPrecioP.setForeground (Color.BLUE);
      tPrecioP.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tCantP=new JTextField (10);
      tCantP.setForeground (Color.BLUE);
      tCantP.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tVar=new JTextField (10);
      tVar.setForeground (Color.BLUE);
      tVar.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tTasa=new JTextField (10);
      tTasa.setForeground (Color.BLUE);
      tTasa.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tResultados2=new JTextArea (5,5);
      tProducto=new JTextField (10);
      tProducto.setForeground (Color.BLUE);
      tProducto.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tPrecA=new JTextField (10);
      tPrecA.setForeground (Color.BLUE);
      tPrecA.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tNC=new JTextField (10);
      tNC.setForeground (Color.BLUE);
      tNC.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      //Botones
      bContrato=new JPanel ();
      bContrato.setLayout (new FlowLayout ());
      bContrato.setBackground(Color.WHITE);
      bContrato.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
      bAContrato=new JButton ("+ Contrato");
      bEContrato=new JButton ("- Contrato");
      bBContrato=new JButton ("Buscar");
      bContrato.add(bAContrato);
      bContrato.add (bEContrato);
      bContrato.add (bBContrato);
      //Agregar
      contratos.add (lNumContrato);
      contratos.add (tNumContrato);
      contratos.add (lNC);
      contratos.add (tNC);
      contratos.add (lDuracion);
      contratos.add (tDuracion);
      contratos.add (lPrecioP);
      contratos.add (tPrecioP);
      contratos.add (lCantP);
      contratos.add (tCantP);
      contratos.add (lVar);
      contratos.add (tVar);
      contratos.add (lTasa);
      contratos.add (tTasa);
      contratos.add (lProducto);
      contratos.add (tProducto);
      contratos.add (lPrecA);
      contratos.add (tPrecA);
      contratos.add (lResultados2);
      contratos.add (tResultados2);
      contratos.add (bContrato);
      //Panel calcularC
      calcularC=new JPanel ();
      calcularC.setLayout (new GridLayout (2,4));
      calcularC.setBackground(Color.BLUE);
      calcularC.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
      //Label
      lNumCliente=new JLabel ("# Cliente: ");
      lNumCliente.setForeground (Color.WHITE);
      lNumCliente.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lNumCont=new JLabel("# Contrato: ");
      lNumCont.setForeground (Color.WHITE);
      lNumCont.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      lResultados3=new JLabel("Resultado: ");
      lResultados3.setForeground (Color.WHITE);
      lResultados3.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      //TextField
      tNumCliente=new JTextField (10);
      tNumCliente.setForeground (Color.BLUE);
      tNumCliente.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tNumCont=new JTextField (10);
      tNumCont.setForeground (Color.BLUE);
      tNumCont.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      tResultados3=new JTextField (10);
      tResultados3.setForeground (Color.BLUE);
      tResultados3.setFont(new Font(auxFont.getFontName(), auxFont.getStyle(), 15));
      //Botones
      bCalcularC=new JPanel ();
      bCalcularC.setLayout (new FlowLayout ());
      bCalcularC.setBackground(Color.BLUE);
      bCalcularC.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
      bCalcula=new JButton ("Calcular Prima");
      bCalcularC.add(bCalcula);
      //Agregar
      calcularC.add (lNumCliente);
      calcularC.add (tNumCliente);
      calcularC.add (lNumCont);
      calcularC.add (tNumCont);
      calcularC.add (lResultados3);
      calcularC.add (tResultados3);
      calcularC.add(bCalcularC);
      
      contenedor.add (clientes);
      contenedor.add (contratos);
      contenedor.add(calcularC);

      this.setBounds (100,100,1200,700);
      this.setVisible (true);
   }

   public static void main(String[] args) {
      BanaiVista panel;
      panel=new BanaiVista ("Banai");
   }
}

y este es mi controlador:

package paqueteBanco;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

public class BanaiControlador extends BanaiVista {
   File ent;
   double [][] tablaNormal;
   BancoBanai a;
   EjecutivoBanai e;
   
   public BanaiControlador (String titulo){
      super (titulo);
      ent = new File("tablaNormal.txt");
      a = new BancoBanai();
      e=new EjecutivoBanai(34543,"Lidneisy");
      tablaNormal = LeeArchivos.leeDameTablanormal(ent);
      bACliente.addActionListener (new EscuchaCliente ());
      bECliente.addActionListener (new EscuchaCliente ());
      bBCliente.addActionListener (new EscuchaCliente ());
      bAContrato.addActionListener (new EscuchaContrato ());
      bEContrato.addActionListener (new EscuchaContrato ());
      bBContrato.addActionListener (new EscuchaContrato ());
      bCalcula.addActionListener (new EscuchaC ());
   }
   
   private class EscuchaContrato implements ActionListener{
      public void actionPerformed (ActionEvent ae){
         String numeroCliente;
         String producto;
         String numeroContStr;
         String duracionStr;
         String cantidadProdStr;
         String varianzaPrecioProdStr;
         String precioActualStr;
         String tasaLibRiesgoStr;
         String precioProdStr;
         String res = null;
         int numeroCont;
         int duracion;
         int cantidadProd;
         double varianzaPrecioProd;
         double precioActual;
         double tasaLibRiesgo;
         double precioProd;
         
         numeroCliente=tNumeroCliente.getText();
         producto=tProducto.getText();
         numeroContStr=tNumContrato.getText();
         duracionStr=tDuracion.getText();
         cantidadProdStr=tCantP.getText();
         varianzaPrecioProdStr=tVar.getText();
         precioActualStr=tPrecA.getText();
         tasaLibRiesgoStr=tTasa.getText();
         precioProdStr=tPrecioP.getText();
         numeroCont=Integer.parseInt(numeroContStr);
         duracion=Integer.parseInt(duracionStr);
         cantidadProd=Integer.parseInt(cantidadProdStr);
         varianzaPrecioProd=Double.parseDouble(varianzaPrecioProdStr);
         precioActual=Double.parseDouble(precioActualStr);
         tasaLibRiesgo=Double.parseDouble(tasaLibRiesgoStr);
         precioProd=Double.parseDouble(precioProdStr);
         switch (ae.getActionCommand().charAt(0)){
            case '+': if(e.agregaContratoCliente(numeroCliente,numeroCont,precioProd,duracion, cantidadProd,  producto,  varianzaPrecioProd, tasaLibRiesgo, precioActual))
                     res ="Ok";
                    else
                     res = "Error";
            break;
            case '-': res = e.quitaContratoCliente(numeroCliente,numeroCont);
            break;
            case 'B': res = e.infoContratoCliente(numeroCliente, numeroCont);
            break;
         }
         tResultados2.setText(res);
      }
   }
   
   private class EscuchaCliente implements ActionListener{
      public void actionPerformed (ActionEvent ae){
         String numCliente;
         String telefono;
         String direccion;
         String nombre;
         String res = null;
         
         
         nombre=tNombreC.getText ();
         numCliente=tNumeroCliente.getText();
         telefono=tTelefono.getText();
         direccion=tDireccion.getText();
         switch (ae.getActionCommand().charAt(0)){
            case '+': if(e.addCliente(nombre,numCliente,telefono,direccion))
                       res = "Cliente Agregado";
                     else
                        res = "Error";
            break;
            case '-': res = e.removeCliente(numCliente);
            break;
            case 'B': res = e.infoCliente(numCliente);
            break;
         }
         tResultados.setText(res);
      }
   }
   
   private class EscuchaC implements ActionListener{
      public void actionPerformed (ActionEvent ae){
         String numCliente;
         String numContStr;
         String resStr="";
         int numCont;
         double res;
         
         numCliente=tNumCliente.getText();
         numContStr=tNumCont.getText();
         numCont=Integer.parseInt(numContStr);
         res=e.calculaCContCl(numCliente,numCont,tablaNormal);
         tResultados3.setText(resStr+res);
      }
   }
   
   public static void main(String[] args) {
      BanaiControlador panel;
      panel=new BanaiControlador ("Banco Nacional de Inversión");
      panel.pack();
   }
}


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 20:44 pm
ahh ok deja verifico ese segmento gracias :)


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 20:54 pm
Perfecto muchisimas gracias ya no marca error y por lo menos ya actua el programa cuando lo trato de usar, aunque la información que me da no es la que busco me imagino que los demas errores los tengo en las clases  muchas gracias


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Said Aldana en 6 Diciembre 2009, 20:55 pm
solo tenia que borrar la instanciacion del scanner en ese segmento que me dijiste  :D


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Leyer en 6 Diciembre 2009, 21:10 pm
bien me alegra averte ayudado :)

Saludos.


Título: Re: Ayuda Proyecto de Java Por favor!!
Publicado por: Debci en 7 Diciembre 2009, 08:37 am
Haber, tio puedes usar las tags de codigo y poner
Código:
[code=java]
[/code] y asi podriamos entender el codigo mucho mejor
Enserio es totalmente ilegible cuesta mucho, no te dan ganas de verificarlo.

Saludos