es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Como traductor de español que trabaja con documentos de tecnología de la información, puedo ayudarte a traducir el siguiente texto al español: “Show the input in a different class from a JTextField using IO files” “Mostrar la entrada en una clase diferente desde un JTextField utilizando archivos de entrada/salida (IO)” Espero que esta traducción sea de tu ayuda. Si tienes alguna pregunta adicional, ¡no dudes en preguntar!

Tengo una ventana que recoge información del usuario y si hay algún error, muestra un mensaje en un diálogo, pero también quiero leer la entrada y mostrar la salida de este código utilizando archivos de entrada/salida.
Entiendo el concepto, pero no logro conectarlo a este código.
Cualquier consejo me ayudaría.
Aquí está el código:

@Override
public void actionPerformed(ActionEvent ae) {
      String fi =f.getText(); 
      String la = l.getText();
      String ii = i.getText();    
      String ma=m.getText();
      String dob=d.getText();
      String ad= a.getText();
      String ph = p.getText();
      if(fi.equals("") ||  la.equals("")|| ii.equals("")|| ma.equals("") || dob.equals("") || ad.equals("") || ph.equals("")){
        JOptionPane.showMessageDialog(null,"Información incompleta","Error",JOptionPane.ERROR_MESSAGE);

    }
    else if( !ph.startsWith("05") || ph.trim().length()!=10){
        JOptionPane.showMessageDialog(null,"Teléfono inválido, debe comenzar con 05 y contener 10 dígitos","Error",JOptionPane.ERROR_MESSAGE);

    }
    else if( ii.trim().length()!=10){
        JOptionPane.showMessageDialog(null,"ID inválida, debe contener 10 dígitos","Error",JOptionPane.ERROR_MESSAGE);

    }
    else if( !dob.trim().matches("\\d{4}-\\d{2}-\\d{2}")){
        JOptionPane.showMessageDialog(null,"Fecha de nacimiento inválida, debe estar en formato AAAA-MM-DD","Error",JOptionPane.ERROR_MESSAGE);
    }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para también leer la entrada y mostrar la salida utilizando archivos IO, puedes declarar una variable File y una variable FileWriter al comienzo del método. Abre el FileWriter y escribe los datos de entrada en el archivo, luego cierra el FileWriter. Después de eso, puedes abrir un FileReader y BufferedReader para leer los datos del archivo y mostrarlos en un nuevo mensaje de diálogo.

    Aquí tienes una implementación de ejemplo:

    @Override
    public void actionPerformed(ActionEvent ae) {
          String fi =f.getText(); 
          String la = l.getText();
          String ii = i.getText();    
          String ma=m.getText();
          String dob=d.getText();
          String ad= a.getText();
          String ph = p.getText();
          if(fi.equals("") ||  la.equals("")|| ii.equals("")|| ma.equals("") || dob.equals("") || ad.equals("") || ph.equals("")){
            JOptionPane.showMessageDialog(null,"Información incompleta","Error",JOptionPane.ERROR_MESSAGE);
    
        }
        else if( !ph.startsWith("05") || ph.trim().length()!=10){
            JOptionPane.showMessageDialog(null,"Teléfono inválido, debe comenzar con 05 y contener 10 dígitos","Error",JOptionPane.ERROR_MESSAGE);
    
        }
        else if( ii.trim().length()!=10){
            JOptionPane.showMessageDialog(null,"ID inválido, debe contener 10 dígitos","Error",JOptionPane.ERROR_MESSAGE);
    
        }
        else if( !dob.trim().matches("\\d{4}-\\d{2}-\\d{2}")){
            JOptionPane.showMessageDialog(null,"Fecha de nacimiento inválida, debe tener el formato AAAA-MM-DD","Error",JOptionPane.ERROR_MESSAGE);
        } else {
            try {
                File file = new File("entrada.txt");
                FileWriter fw = new FileWriter(file);
                fw.write(fi + "," + la + "," + ii + "," + ma + "," + dob + "," + ad + "," + ph);
                fw.close();
    
                BufferedReader br = new BufferedReader(new FileReader(file));
                String line;
                StringBuilder sb = new StringBuilder();
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
                br.close();
    
                JOptionPane.showMessageDialog(null, "Datos de entrada: " + sb.toString(), "Éxito", JOptionPane.INFORMATION_MESSAGE);
    
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    

    Esta implementación escribe los datos de entrada en un archivo llamado “entrada.txt”, separados por comas. Luego lee los datos del archivo y los muestra en un nuevo mensaje de diálogo después de validar con éxito la entrada. Puedes ajustar el nombre del archivo y la forma en que se escriben y leen los datos para adaptarlos a tus necesidades.

Comments are closed.