¿Cómo crear,consultar y guardar ficheros en GUI? (JAVA)

Iniciado por the walrus, 2 Marzo 2010, 06:00 AM

0 Miembros y 1 Visitante están viendo este tema.

sapito169

acata tines la parte del programa que seria mas dificil sobre como guardar la persona

PrintWriter printwriter = new PrintWriter(
                    new FileWriter("c:\\usuarios.txt", true));
            printwriter.println(dnia.getText() + "\n");
            printwriter.println(noma.getText() + "\n");
            printwriter.println(apea.getText() + "\n");
            printwriter.flush();
            printwriter.close();


ya es cuestion tuya hacer el gui y para y avisa si tienes algun problema con la busqueda

a ca tienes un ejemplo

http://www.chuidiang.com/chuwiki/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java

the walrus

Cita de: sapito169 en  3 Marzo 2010, 22:13 PM


-no cuando tengas un problema de esos no modifiques as todo el gui desde 0 no tienes opcion ademas hacer un formulario de este tipo toma a lo mucho en el peor de los casos 10 minutos


algunas modificaciones han ido indicadas directamente por la compilación del netbeans..(aunque no las he reflejado)

Citar

por que no lo puedes tener separado es una buena practica o acaso no te eneñearon a trabajar con clases o el profesor es un bruto que adbitrariamente les dijjo que trabajen todo en un "solo archivo" sera que el profesor no sabe que el ide te crea un monton de archivos que solo sirven para el ide


;D las tres cosas.aunque lo del profesor,simplemente se puso exquisito en cuanto a lo que pedía

Citar
-un nombre signifiactivo no es jTabbedPane1
-en ves de poner AltasButton pon btnDarDeAlta
-en ves de poner ape pon txtApellido
-en ves de poner dnia y dnib pon txtdniAlta y txtDniConsulta

recuerda nombres claros y conpletos con prefijos y sin lugar a duda procurando que no sean demasiados largos
[
Citar
da tu mayor esfuerso para lograr cunplir lo mejor posible en todo y aprender al maximo y no hay ningun problema en dejar de hacer cosas que te gusten y si en el peor de los casos y solo apesar de todos tus esfuersos no te alcansa tiempo simplemente copiate para que apruebes solo como la ultima opcion


eso está claro,pero el cansancio acumulado de no dormir ni descansar los ojos es todo un hándicap  :rolleyes:


Citar

-no pongas inportancion generica import java.awt.*;
entiendie tu propio codigo




esto último nos lo indicó precisamente el profesor
(te digo que está poco actualizado y aunque usamos el netbeans no lo conoce a penas   ;-)  )

the walrus

#12
Cita de: sapito169 en  3 Marzo 2010, 22:25 PM
mira tu propio codigo esta muy mal echo

package paqgui;


[/quote]

a ver,precisamente ése es uno de los problemas,que el código de abajo se me generó automáticamente y no me deja eliminarlo,pero errores anteriores sobre las variables se me quitaron al declararlas arriba.
lo del newFrame lo cambié poco después de postear,no me dió tiempo a editarlo  :P

the walrus

#13

vale.
consultas esperaba no obtener el resultado esperado,pero porque no sé como asociar el acceso aleatorio al fichero y que el resultado se presente en los campos de texto,es decir,que al verificar el DNI,las cajas restantes indiquen los datos del usuario.
en definitiva,un despropósito de código y de desorden que he lucido  :huh:
Citarel fichero y el acceso en sí no da problema,salvo que sobrescribe el fichero al entrar un alta nueva,voy a mirar si puedo retocar esa opción

ya he conseguido no sobrescribirlo acoplando el true tras la ruta,aunque ahora me da fallo la consulta,debe ser que sí da problema el acceso..

the walrus

#14

Citar

ya he conseguido no sobrescribirlo acoplando el true tras la ruta,aunque ahora me da fallo la consulta,debe ser que sí da problema el acceso..


después de algunas modificaciones para que compilara toda la parte conflictiva me ha quedado tal que así :

Código (java) [Seleccionar]



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

          FileReader fr = null;
         

       try {

           BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\usuarios.txt"));
           String read=" ";
           String request=dnic;
           dnic.getText(" ");
         
           while ((read = bufferedReader.readLine()) != null) {
               if(read.substring(read.lastIndexOf(" ")).trim().equals(request))

               nomc.setText(" "+read);
               apec.setText(" "+read);
               telefc.setText(" "+read);
               
               }

           }


        catch (FileNotFoundException e) {
     
           e.printStackTrace();
       } catch (IOException e) {
           
           e.printStackTrace();
       }


finally{
        try{
           if( null != fr){
              fr.close();
           }
        }catch (Exception e2){
           e2.printStackTrace();
        }
     }
 
   }


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

       String a = " ";

       dnic.setText(a);
       nomc.setText(a);
       apec.setText(a);
       telefc.setText(a);
   }                





pero siguen saliend errores y sigue sin funcionar la consulta  :-(

sapito169

quitale el bendito if que no sirve para nada

estas leyendo mal eso es muy basico

String dni =txtDniConsulta.getText();

parece que para que te salga vas a tener que ponerle contadores

recuerda que cada 4 campos es una persona nueva



the walrus

XDD ya,lo del if me tenía confundido..vi un par de códigos de hilos antiguos de este foro que lo llevaban y lo metí ahí mismo.
la lectura no la tengo clara del todo,
contador de este tipo?
public int getText()
 {
   count++;
   dnic.setText(String.valueOf(count));
   return count;
  }

y donde los meto?no sé,lo del botón y relacionar la salida hacia las cajas me tiene perdido y a estas horas no razono muy bien..pero hoy tengo que acabarlo  :-\




the walrus

no he conseguido imprimir la información en las cajas,cuando modifico lo mínimo se acumulan los errores,y me he fijado ahora que al recuperar la consulta del fichero al meter el dni no saca la información de ese usuario..saca toda la del fichero!
encima me vuelve a dar problemas sacar el bufferedwriter del try,da error en el filewriter exigiendo una clase main  ;-)

estoy bloqueado

the walrus

bueno,he conseguido quitar todos los errores y aparentemente funciona salvo que aún no devuelve los datos de la búsqueda,lee y devuelve todo el archivo  :o

Código (java) [Seleccionar]

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


        try {

            BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\personas.txt"));
            String read = " ";
            String request = "";
            while ((read = bufferedReader.readLine()) != null) {
               
                    System.out.println("-" + read);
                }

           
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // TODO add your handling code here:
    }


eso es la parte de las consultas,


   public void AltasButtonActionPerformed(java.awt.event.ActionEvent evt) throws IOException {
                    BufferedWriter bufferedwriter = new BufferedWriter(
                    new FileWriter("c:\\personas.txt",true));

        try {
           
            bufferedwriter.append(dnia.getText());
            bufferedwriter.flush();
            bufferedwriter.newLine();
            bufferedwriter.append(noma.getText());
            bufferedwriter.flush();
            bufferedwriter.newLine();
            bufferedwriter.append(apea.getText());
            bufferedwriter.flush();
            bufferedwriter.newLine();
            bufferedwriter.append(telefa.getText());
            bufferedwriter.flush();
            bufferedwriter.newLine();
            bufferedwriter.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



    }

y esta la de las altas.
puede tener relación cómo se han escrito los datos para la manera en que los recupera?
(creo que el fallo esta simplemente en consultas,en la salida)

Leyer

#19
Bueno te ayudo ya que sapito no esta a ver para la busqueda por DNI

es de la siguiente forma

Código (java) [Seleccionar]
boolean found = false;
           while ((read = bufferedReader.readLine()) != null) {
            if(read.trim().equalsIgnoreCase(dnic.getText())){
            JOptionPane.showMessageDialog(this, "Encontrado: \n"+
            " \n Nombre: "  +bufferedReader.readLine()  +
            " \n Apellido: "+bufferedReader.readLine()  +
            " \n Telefono: "+bufferedReader.readLine()  +
            " \n","Encontrado(a)",
            JOptionPane.INFORMATION_MESSAGE);
            found = true;
            break;
            }
               }
           if(!found){
            JOptionPane.showMessageDialog(this, "No Encontrado", " ", JOptionPane.INFORMATION_MESSAGE);
           }


-consejo-

1. Fijate que cada vez que haces una acción estas  creando un objeto del reader o del writer, haorras memoria y es mas rapido si solo creas un objeto de estos y los usas en vez de crearlo cada vez que haces una acción.


Un Saludo.