Hola,
Tengo una duda sobre el tratamiento de eventos. Yo lo hago de una forma, pero no se si es la forma adecuada. Pongo el ejemplo siguiente:
Tengo un JFrame1 y JFrame2. En el JFrame2 tengo un JTextField y en el JFrame1 tengo un boton en el cual al pulsar muestra un texto en el JTextField del JFrame1.
La forma de en que lo hago yo es asi por ejemplo:
Clase JFrame1:
Código PHP:
public class JFrame1 extends JFrame{
JTextField miTextField = new JTextField(10);
public JFrame1() {
setSize(200,200);
this.add(miTextField);
setVisible(true);
}
public static void main(String[] args) {
JFrame1 miJFrame1 = new JFrame1();
JFrame2 miJFrame2 = new JFrame2(miJFrame1.miTextField);
}
}
Clase JFrame2:
Código PHP:
public class JFrame2 extends JFrame{
JButton miJButton = new JButton("Hola");
JTextField copiaTextField;
public JFrame2(JTextField AuxJTextField) {
copiaTextField = AuxJTextField;
setSize(200,200);
this.add(miJButton);
setVisible(true);
miJButton.addMouseListener(new Interrupcion(copiaTextField));
}
}
Clase que trata la Interrupcion:
Código PHP:
public class Interrupcion implements MouseListener{
JTextField textFieldCopia;
/** Creates a new instance of Interrupcion */
public Interrupcion(JTextField miJTextField) {
textFieldCopia = miJTextField;
}
public void mouseClicked(MouseEvent e) {
textFieldCopia.setText("Escribiendo...");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
Esto me funciona correctamente. Se que si todo lo tuviese en un mismo Jframe seria diferente, pero en este caso lo tengo en diferentes JFrame y lo que hago es pasarle una "copia" del elemento que necesito (en este caso el JTextField) sobre el que realizo los cambios. Pero esto me parece que va encontra de la reutilizacion de clases,no? Pues por ejemplo la clase JFrame2 su constructor es public "JFrame2(JTextField AuxJTextField)", es decir que solo podria reutilizarla pasandole un JTextField, cosa que me hace pensar que el JTextField, no deberia de pasarle como parametro y si de alguna forma diferente.
¿Estoy haciendo las cosas bien o mal?