Pasar Datos Constructor

Iniciado por cristiantorres, 29 Julio 2012, 06:29 AM

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

cristiantorres

Hola a todos.

Soy programador en c# pero tengo que hacer unas cuantas aplicaciones en java.

Como podría pasar un dato por medio del constructor a un jframe.

He probado de la siguiente manera(en c# funciona asi).
   
valor2 = txtval2.getText();
JFrame2 f2 = new JFrame2(valor2);
f2.setVisible(true);


cuando llamo al jframe2 le paso en el constructor el valor.

Y en el constructor de jframe2 tengo lo siguiente

public JFrame2(String val2) {
      initComponents();
      txt2.setText(val2);
}


Pero no me funciona alguien me puede indicar como es la manera para pasar datos por medio del constructor a otro jframe
Visita mi Blog C#, Asp.Net, Python y mas...
http://cristiantorresalfaro.blogspot.com

leogtz

Creo que ni en C# se puede realizar algo así.

El constructor está así:
Código (java) [Seleccionar]
public JFrame2(String val2) {
       initComponents();
       txt2.setText(val2);
}

Entonces para instanciar debería ser así:

Código (java) [Seleccionar]
valor2 = txtval2.getText();
JFrame2 f2 = new JFrame2(valor2);
f2.setVisible(true);


Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

cristiantorres

#2
Pero si así lo tengo.

valor2 = txtval2.getText();
JFrame2 f2 = new JFrame2(valor2);
f2.setVisible(true);


public JFrame2(String val2) {
      initComponents();
      txt2.setText(val2);
}


Y en c# claro que funciona asi cuando creas la instacia del formulario 2 le pasas el dato en este caso la variable valor2 y en el constructor te creas el parametro que tendria que recibir el valor que se le pasa.
Visita mi Blog C#, Asp.Net, Python y mas...
http://cristiantorresalfaro.blogspot.com

cristiantorres

Ya logre resolver el problema no era problema con el código que tenia.

El error que me mostraba estaba en el main del jframe2 le di en el error y me decía crear constructor del jframe2 le di clic y me creo esto.

    private JFrame2() {
        throw new UnsupportedOperationException("Not yet implemented");
    }


La verdad que no entiendo porque creo otro constructor.

uso netbeans
Visita mi Blog C#, Asp.Net, Python y mas...
http://cristiantorresalfaro.blogspot.com

leogtz

#4
Antes de que editaras el mensaje tenías algo así:

JFrame2 f2 = new JFrame2(String valor2);

Respecto al constructor por defecto, probablemente en alguna parte estabas llamando algo así:

new JFrame2();

pero como ya tenías un constructor así:

public JFrame2(String s) {

}


el lenguaje te quita el constructor por defecto JFrame2() y te marca error por no estar implementado.
Lo recuerdo bien, y perdona pero ni en C# ni en Java creo que pudieras hacer eso.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

cristiantorres

Tienes razon perdón al principio puse el código mal. fue un error de dedo.

Y con respecto a lo del constructor sobre lo de

new JFrame2();

Esa parte la creo netbeans cuando cree el jframe2
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JFrame2().setVisible(true);
            }
        });
    }


Pero bueno seguiré investigando ya que mi fuerte es c# conozco java pero nunca había creado formularios asi que hay algunas cosas que aun desconozco de como funciona java.

Saludos
Visita mi Blog C#, Asp.Net, Python y mas...
http://cristiantorresalfaro.blogspot.com

ChavalChavito

Es conveniente que utilices otra politica de manejos de ventanas, un unico JFrame el resto JDialog, asi podes pasarle x parametros el modal(un booleano), el cual bloquea la ventana padre por asi decirlo.. desde java 6 en adelante el API trae consigo dos clases estaticas dentro d la clase Dialog:
_ static class ModalityType
_ static class ModalExclusionType
Las cuiales tienen dentro enumerado el nivel de bloqueo que pueden generar..
yo particularmente utilizo una factory para llamar a los Dialogs..
espero q t sirva, investiga un poco mas al respecto, esta es la manera correcta de hacer las cosas..

cristiantorres

Ok gracias investigare sobre lo que me dices.

Saludos
Visita mi Blog C#, Asp.Net, Python y mas...
http://cristiantorresalfaro.blogspot.com

reylagarto19

Cita de: ChavalChavito en 29 Julio 2012, 23:27 PM
Es conveniente que utilices otra politica de manejos de ventanas, un unico JFrame el resto JDialog

Es cierto que esto una tecnica correcta de programacion, pero es siempre OBLIGATORIO hacerlos asi??

es decir si yo tengo una App en la que muestro un JFrame que me permite loggearme a lo que es en si la App

podria hacer un JFrame para lo que es luego la ventana de la App ??

es decir, JFrame Loggeo --> JFrame VentanaApp

o es Extrictamente necesario Usar solo un JFrame ??

siento desviar el tema, pero tenia que preguntaroslo....


ChavalChavito

CitarEs cierto que esto una tecnica correcta de programacion, pero es siempre OBLIGATORIO hacerlos asi??
Nunca dije "obligatorio", solo la manera correcta de hacerlo...
Sumando a las razones anteriorment dichas aca es q x cada JFrame q creamos windows nos genera un boton en la barra d herramientas, no asi c los JDialog o JInternalFrame..
Otra es q JFrame no admite a ninguna otra ventana como padre. El JDialog sí admite como padres un JFrame u otros JDialog. Esto es importante porque una ventana hija siempre quedará por encima de su ventana padre. Si al crear los JDialog les pasamos el JFrame como padre, los JDialog siempre estarán visibles por encima del JFrame. No se podrán ir "detrás" de él