• Viernes 8 de Noviembre de 2024, 18:55

Autor Tema:  Nuevita en java  (Leído 1351 veces)

Luna_Rules

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Nuevita en java
« en: Lunes 16 de Marzo de 2009, 19:11 »
0
Bueno antes que nada, Muy buenas a todos!
Soy nueva en el foro, y casi lo mismo podria decir para la programacion  :lol: , estuve haiendo unos cursos de c++, y ahora mismo estoy empezando con java, Como ha de suponerse si estoy aqui es para comentarles algunas de las dudillas que tengo  :unsure: , estoy segura de que alguno de ustedes entenderan estas cuestiones y podran ayudarme, y espero en un tiempo poder ayudar a otros :P
Bueno, ahi va una...

Estoy haciendo una aplicacion para windos muy sencilla, en el primer formulario (Form1), creo algunas propiedades y metodos, una vez que el usuario apriete el boton aceptar del primer formulario se abre el formulario dos (Form2), el problema:
Una vez que intento utilizar los metodos y propiedades del form1 en el form2, no me los acepta, (es decir, me dicen que no pertenecen a ese formulario), luego entonces lo que cambio es el encabezado del FORM2 donde dice :
"public class Form2 extends Form" (dicho sea de paso no entiendo porque "extends form"), cuando cambio ese encabezado por "public class Form2 extends Form1" (para poder usar los metodos y propiedades del formulario uno), me desactiva la ventana de diseño y ademas peta en el momento de ejecutar la aplicacion.... :hitcomp:
espero haberme explicado,

no quiero que me resuelvan ningun ejercicio ni nada, solo quiero que me orienten donde esta el problema, si necesitan el codigo para ver lo que tengo se los dejo, pero como decia, no necesito hacer un ejercicio simplemente me gustaria saber la causa del problema y en lo posible alguna explicacion para poder resolverla...

Muchas gracias! :good:

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Nuevita en java
« Respuesta #1 en: Martes 17 de Marzo de 2009, 09:48 »
0
¡Bienvenid@ al foro!

Creo que tu problema radica en que no referencias Form2 al llamar a sus métodos. Esto es, piensa en Form1 y Form2 como 2 objetos independientes, así que para llamar a un método de Form2 desde Form1 debes indicar Form2.nombre_metodo();. Esto siempre y cuando hayas declarado el método en cuestión como público/protegido (que tenga suficiente visibilidad para poder llamarlo desde Form1, vamos). Si no tienes claro esto último, te aconsejo que lo repases, pues es fundamental en programación orientada a objetos.

Cita de: "Luna_Rules"
no quiero que me resuelvan ningun ejercicio ni nada, solo quiero que me orienten donde esta el problema, si necesitan el codigo para ver lo que tengo se los dejo, pero como decia, no necesito hacer un ejercicio simplemente me gustaria saber la causa del problema y en lo posible alguna explicacion para poder resolverla...
Esto está más que claro en tu explicación.

Salud

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Nuevita en java
« Respuesta #2 en: Martes 17 de Marzo de 2009, 17:23 »
0
Hola.

Es sencillamente imposible llamar desde un objeto a métodos que están en otro sin tener una instancia del mismo si los métodos no son static.

Lo que suele hacerse con programas de varios formularios es utilizar un Form como formulario principal y que el principal tenga variables Form2, Form3, etc.
Cuando se crea uno de los formularios hijos, deberías pasarle todos los datos que necesita para hacerlo funcionar. Si es necesario que exista comunicación entre los dos, deberías pasarle la instancia del primero al formulario 2, de esta manera:

Código: Text
  1.  
  2. FormHijo extends Form {
  3.     FormPrincipal padre= null;
  4.  
  5.     ...
  6. }
  7.  
  8.  

y en el Formulario principal:

Código: Text
  1.  
  2. FormPrincipal extends Form {
  3.     private FormHijo hijo= null;
  4.  
  5.     public void crearHijo{
  6.         hijo= new FormHijo();
  7.         hijo.padre= this;
  8.     }
  9. }
  10.  
  11.  

Pasale los parámetros como te parezca mejor. En este caso es posible tener comunicación bidireccional entre ambos. De todas formas, no debes olvidarte de controlar qué pasa cuando el formulario hijo ya está creado y de poner a null las variables cuando se destruya el formulario al que se hace referencia.
Además, date cuenta de que esto es algo que suele ser inusual. Lo normal sería hacer el programa de tal forma que sólo el padre comunicase con los hijos y que los hijos no necesiten llamar al padre para nada.



Espero que te sirva.

Un saludo y suerte.



Silverfox