2012-01-20 10 views
5

No estoy seguro si esto se ha preguntado antes, es un poco difícil de explicar.¿Cómo verificar que la variable en una clase diferente se haya actualizado?

tengo 2 clases, Clase A y Clase B

Clase A crea una instancia de la clase B (que es un cuadro de diálogo con JDialog). Luego se le pide al usuario que ingrese texto (almacenado en una variable String).

¿Cómo le digo a la clase A que el usuario ha actualizado la variable y obtiene una copia?

Uso de Java swing por cierto,

Gracias

T

+0

¿Por qué no se puede utilizar el actionPerformed (ActionEvent ae) de la caja de texto para monitorear y dejar que ClassA sepa que el valor está siendo cambiado? –

+0

Lo estoy usando cuando el usuario hace clic en un botón Aceptar para actualizar la variable, pero está actualizando la variable en la Clase B – user913059

Respuesta

2

Si el diálogo es modal, a continuación, el código se bloquea hasta que el diálogo se cierra:

dialog.setVisible(true); 
// blocked here until the dialog is closed. The dialog stores the input in a 
// field when OK is clicked in the dialog 
if (dialog.getTextInputtedByTheUser() != null) { 
    ... 

Si el diálogo no es modal, entonces necesita hacer que llame a un método de devolución de llamada cuando ocurre la validación. Esto es lo que MyFrame contendría

private void showDialog(
    MyDialog dialog = new MyDialog(this); 
    dialog.setVisible(true); 
} 

public void userHasInputSomeText(String text) { 
    // do whatever you want with the text 
    System.out.println("User has entered this text in the dialog: " + text); 
} 

y en MyDialog:

private MyFrame frame; 
public MyDialog(MyFrame frame) { 
    super(frame); 
    this.frame = frame; 
} 
... 
private void okButtonClicked() { 
    String text = textField.getText(); 
    frame.userHasInputSomeText(text); 
} 
+0

¿cuál sería MyFrame? atm Solo estoy usando \t privado final JPanel contentPanel = new JPanel(); – user913059

+0

MyFrame es el objeto que contiene el método para devolver la llamada. Podría ser de cualquier tipo. Es solo que es el objeto el que tiene que hacer algo con el texto ingresado por el usuario. Es la instancia de la Clase A en tu ejemplo. –

+0

¿Podría mostrarme cómo debería ser la Clase A, no estoy seguro de entender por completo – user913059

Cuestiones relacionadas