Buenas, tengo un problemilla con un atributo en el jdialog. Os pongo en situacion:
tengo una clase que extiende de jframe y otra que extiende de jdialog.
Lo que necesito es una ventana principal que al pulsar un boton me lance otra para que el usuario meta unos valores, y luego recoger esos valores en la ventanaprincipal, y así dos veces, con valores diferentes, claro.
Entonces, tengo algo asi en el jframe:
Ventana3x3 vp = new Ventana3x3(this, true);
vp.show();
mascara1 = vp.getMascara();
mascaras.add(0, mascara1);
vp = new Ventana3x3(this, true);
vp.show();
mascara2 = vp.getMascara();
mascaras.add(1, mascara2);
(si, sé que podría hacer esto mas sencillo con un bucle, pero como no salia, opté por hacer las pruebas asi y como aun asi no me sale y ya no sé que mas mirar porque he mirado un montón, tuve que acudir a vosotros)
la clase Ventana3x3 es la que extiende de jdialog.
El problema es que cuando hago la primera llamada al jdialog, pues va todo bien: almacena esos valores en mascara1. El problema es con la segunda llamada, que en el debugger me pone que cuando ejecuta por segunda vez vp = new Ventana3x3.... mascara1 lo vacía completamente y el nuevo valor lo almacena en mascara1 y en mascara2. Total, que solamente tengo en las dos variables el ultimo valor introducido y no el primer valor y el segundo valor introducido.
Los jdialog los cierro con un this.dispose. Y el motivo por el que se vacía mascara1 es porque en el constructor tengo puesto un clearAll, pero es un clearAll de un atributo global de jdialog. No sé, yo no entiendo por qué hace eso. Este es parte del codigo de jdialog:
private static ArrayList<ArrayList<Integer>> mascara = new ArrayList<ArrayList<Integer>>();
/** Creates new form
public Ventana3x3(java.awt.Frame parent, boolean modal) {
super(parent, modal);
mascara.removeAll(mascara);
...........
}