Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/11/2007, 11:54
JoeCole
 
Fecha de Ingreso: junio-2005
Mensajes: 60
Antigüedad: 19 años, 5 meses
Puntos: 0
Duda sobre Eventos

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?