Home Foros Foro dudas Foro de Java Error de excepción

Error de excepción

Viendo 6 entradas - de la 1 a la 6 (de un total de 6)
  • Autor
    Entradas
  • #19598

    jhonviafara
    Participante

    Cordial saludo;

    Estoy iniciando en el mundo de la programación y me enfrento a un error de excepción, y no tengo ni la más remota idea de como resolverlo agradecería cualquier ayuda… estoy realizando el curso de programación en java  suministrado por píldoras informáticas punto actual del curso no. 91,

    package interacionesgraficas;

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class PruebaArea {

    public static void main(String[] args) {

    MarcoPruebaArea Marco = new MarcoPruebaArea();

    Marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Marco.setVisible(true);

    }

    }

    class MarcoPruebaArea extends JFrame {

    public MarcoPruebaArea() {

    setTitle(“Probando Área de Texto”);

    setBounds(500, 300, 500, 350);

    setLayout(new BorderLayout());

    LaminaBotones = new JPanel();

    BotonInsertar = new JButton(“Insertar”);

    BotonInsertar.addActionListener(new ActionListener() {

    @Override

    public void actionPerformed(ActionEvent e) {

    AreaTexto.append(“En aquel lugar”);

    }

    });

    LaminaBotones.add(LaminaBotones);

    BotonSaltoLinea = new JButton(“Salto Línea”);

    BotonSaltoLinea.addActionListener(new ActionListener() {

    @Override

    public void actionPerformed(ActionEvent e) {

    boolean Saltar =! AreaTexto.getLineWrap();

    AreaTexto.setLineWrap(Saltar);

    if(Saltar) {

    BotonSaltoLinea.setText(“Quitar Salto”);

    }

    else {

    BotonSaltoLinea.setText(“Salto de Línea”);

    }

    }

    });

    LaminaBotones.add(BotonSaltoLinea);

    add(LaminaBotones, BorderLayout.SOUTH);

    AreaTexto = new JTextArea(8, 20);

    LaminaConBarras = new JScrollPane(AreaTexto);

    add(LaminaConBarras, BorderLayout.CENTER);

    }

    private JPanel LaminaBotones;

    private JButton BotonInsertar, BotonSaltoLinea;

    private JTextArea AreaTexto;

    private JScrollPane LaminaConBarras;

    }

    Erro de excepción al correr el programa:

    Exception in thread “main” java.lang.IllegalArgumentException: adding container’s parent to itself

    at java.desktop/java.awt.Container.checkAddToSelf(Container.java:501)

    at java.desktop/java.awt.Container.addImpl(Container.java:1114)

    at java.desktop/java.awt.Container.add(Container.java:436)

    at graficos.MarcoPruebaArea.<init>(PruebaArea.java:30)

    at graficos.PruebaArea.main(PruebaArea.java:9)

    agradecería cualquier ayuda para su solución muchas gracias por su atención.

    #19600

    FrankMegia
    Participante

    Hola jhonviafara:

    El error lo tienes en esta línea: LaminaBotones.add(LaminaBotones);

    No puedes añadir un contenedor dentro de si mismo. Lo que querías poner era LaminaBotones.add(BotonInsertar);

    Te sugiero que en tus códigos utilices las convenciones de usar primera en mayúscula para los nombres de clase y primera en minúscula para las variables. El código será mas claro y te evitarás errores futuros para distinguir si estas usando un método de una instancia de clase o si estas usando un método de una clase estática, por ejemplo.

    Un saludo.

    #19628

    S^
    Participante

    Hola, tengo el siguiente código con el que quiero por der completar los datos del formulario en consola con Scaner y no consigo hacerlo.

    Los tados son los siguientes y los tengo en un archivo txt:

    Por favor rellene los datos a partir de la linea siguiente

    Nombre:

    Apellido 1:

    Apellido 2:

    DNI:

    Direccion:

    Telefono:

    Observaciones:

    Fin del formulario

    ——————————————————————————————–

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.BufferedReader;

    import java.io.PrintWriter;

    import java.util.Scanner;

    import java.io.IOException;

     

    public class RellenaFormulario {

     

    public static void main(String[] args) throws IOException {

    BufferedReader reader = null;

    PrintWriter writer = null;

     

    try {

    reader = new BufferedReader(new FileReader(“formulario.txt”));

    writer = new PrintWriter(new FileWriter(“characteroutput.txt”));

     

    String punto = “”;

    while ((punto = reader.readLine()) != null) {

     

    // Scanner reader = new Scanner (System.in);

    System.out.println(punto);

     

    }

     

    } finally {

    if (reader != null) {

    reader.close();

    }

    if (writer != null) {

    writer.close();

    }

    }

    }

    #19629

    S^
    Participante

    Gracias!!!

     

    #19630

    FrankMegia
    Participante

    Hola S^:

    Viendo el código, tengo la sensación que no tienes muy claro qué es lo que tienes que hacer. Te aconsejaría que antes de escribir código, tomaras una papel en blanco, lápiz y que hicieras lo que se conoce como un pseudocódigo, es decir, escribir con tus propias palabras la lógica del programa: (P.ej.):

    1º.- Establecer el canal con el archivo de texto.

    2º.- Leer línea del archivo…

    3º.- Imprimirla

    4º.- Si no es “Fin del formulario”, incrementar un contador interno (para saber cuantos datos tendrás que leer después desde el scan)

    etc…

    Si un código no te funciona, se te resiste, no te ofusques con él y empieza de cero. Replantéate la lógica del mismo y apóyate en un pseudocódigo. Los programas no tienen una única solución, así que valora otros caminos para obtener un mismo resultado.

    Un saludo.

     

    #19637

    S^
    Participante

    Hola Fran, gracias por tu respuesta!!!

    Retomo el código con tus indicaciones!!!

     

     

Viendo 6 entradas - de la 1 a la 6 (de un total de 6)
  • Debes estar registrado para responder a este debate.