Domanda

Ho scritto un codice in MATLAB che modulazione e demodulazione alcuni segnali. Schiero utilizzando deploytool e il .jar funziona in una sola applicazione senza interfaccia grafica, ma mi dà la Undefined variable "modem" or class "modem.pskmod". in un'applicazione con interfaccia grafica.

In sostanza, quello che voglio sapere che cosa causerà questo errore si verifichi come ho fatto io guardo intorno, non trovo molta documentazione su questo errore.

Non capisco il motivo per cui lavorare in una sola applicazione, ma non riesce in un altro quando il codice che uso è quasi simile quando si chiama il metodo.

È stato utile?

Soluzione

Ok, dopo molti test e confrontando la differenza tra un'applicazione senza interfaccia grafica e un'applicazione con una GUI. Ho trovato una soluzione al mio problema.

Come un'applicazione senza una corsa GUI init il metodo fin dall'inizio dell'applicazione (non v'è un solo thread)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction(); test.runFunction(1, lstABC.toArray());
}

Ma nel mio codice con GUI ho eseguito il metodo init dall'interno del JFrame (main () contenere il mio codice init), che si trova all'interno del EDT

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

        public void run() {
            try {

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

L'errore si verifica con il modo di cui sopra per inizializzare il metodo MATLAB. Ma se cambio modo di chiamare il metodo init come sotto, l'errore è risolvere.

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

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

Quindi, credo che il motivo per il mio problema, non chiama il metodo init dal thread "prima" che avvia l'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top