Pregunta

I haber escrito un código en MATLAB que modular y desmodular algunas señales. Me desplegarlas usando deploytool y la .jar que funciona en una aplicación sin interfaz gráfica de usuario, pero me da la Undefined variable "modem" or class "modem.pskmod". en una aplicación con interfaz gráfica de usuario.

Básicamente, lo que quiero saber qué va a hacer que este error se produzca como yo mire a su alrededor, no encontrará mucha documentación sobre este error.

No entiendo por qué funciona en una sola aplicación, pero no en otro, cuando el yo utilice el código es casi similar al llamar al método.

¿Fue útil?

Solución

Ok, después de mucho comprobación y comparación de la diferencia entre una aplicación sin una GUI y una aplicación con una interfaz gráfica de usuario. He encontrado una solución a mi problema.

Como una aplicación sin una carrera GUI el método init desde el inicio de la aplicación (sólo hay un hilo)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction(); test.runFunction(1, lstABC.toArray());
}

Pero en mi código con interfaz gráfica de usuario que ejecuta el método init desde dentro del JFrame (main () contiene el código de inicio), que está dentro de la EDT

public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {

        public void run() {
            try {

                new main();
            } catch (Exception p) {
            }
        }
    });
}  

produce el error con la forma anterior a init el método MATLAB. Pero si cambio de forma de llamar al método init como abajo, el error es resolver.

public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {

        public void run() {
            try {
                matlabFunction test = new matlabFunction();
                new main(test);
            } catch (Exception p) {
            }
        }
    });
} 

Por lo tanto, creo que la razón de mi problema no está llamando el método init de la "primera" hilo que inicia la aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top