Problemme mit: Aufruf einer Klasse aus einem Frame

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,
Wir beschäftigen uns mit der Ansteuerung eines GSM Modules über die Serielle Schnittstelle (COM Port). Wir haben jetzt endlich nach langem Programmieren eine Klasse erstellen können, welche unser Bedürfnis vom prallem Senden und Empfangen erfüllt.

Das heisst, wir können die Klasse, die den COM ansteuert, alleine laufen lassen und alle paar Sekunden einen Standardtext auf einen anderen COMPort senden, sowie die vom anderen COMPORT gesendete Texte gleichzeitig von der Klasse empfangen lassen, und diese auf der Konsole darstellen lassen.

Jetzt wollen wir mittels einem Frame auf diese Klasse zugreifen. Das heisst wir haben zwei Files mit jeweils einer Klasse:

1te Klasse: Darstellung des Frame, und verantwortlich für Steuerung (Hauptklasse)
Code:
public class Main extends javax.swing.JFrame {

2te Klasse: Klasse zum ansteuern des COM Ports:
Code:
public class nulltest implements Runnable, SerialPortEventListener {

Doch jetzt das Problem:
Es soll zuerst einmal einen Standardtext ausgegeben werden, wenn wir auf einen Knopf drücken. Wir haben auch soweit die COMKlasse (nulltest) eingebunden:
Code:
nulltest com;
com = new nulltest();

Doch beim Drücken auf den Knopf passiert nichts. In unsere Entwicklungsumgebung Netbeans bekommen wir dann parallel folgende Fehler im OUTPUT ausgegeben.
Code:
deps-jar:
compile-single:
run-single:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at balbierz_com_end_v1.nulltest.<init>(nulltest.java:115)
        at balbierz_com_end_v1.Main.<init>(Main.java:29)
        at balbierz_com_end_v1.Main$2.run(Main.java:82)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Mittlerweile wissen wir wirklich nicht mehr so recht weiter. Seht Ihr vielleicht einen elementaren Fehler? Bzw was sollte man beachten und anders machen?

Vielen Dank für jeden Eintrag,
gruss
delwin
 

Wildcard

Top Contributor
In nulltest (Klassen schreibt man groß) versuchst du auf ein Objekt zuzugreifen, das null ist.
 
G

Guest

Gast
Hi Wildcard,
Danke für die schnelle Antwort. Habe jetzt doch mal das ganze Klasse angehängt. Die Zeilennummern stimmen. Der Witz ist ja, das die Klasse alleine funktioniert.

Gruss
delwin

Code:
/*
 * nulltest2.java
 *
 * Created on 5. Dezember 2007, 08:34
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package bal_com_end_v1;

import java.io.*;
import java.util.*;
import java.lang.String;
//import javax.comm.*; // for SUN's serial/parallel port libraries
import gnu.io.*;


public class nulltest implements Runnable, SerialPortEventListener {
   static CommPortIdentifier portId;
   static CommPortIdentifier saveportId;
   static Enumeration        portList;
   InputStream           inputStream;
   SerialPort           serialPort;
   Thread           readThread;

   static String        messageString = "Hello, world!";
   static OutputStream      outputStream;
   static boolean        outputBufferEmptyFlag = false;
   
   
   
   
//#############################################################################
   public static void main(String[] args) {
      boolean           portFound = false;
      String           defaultPort;
      
      // determine the name of the serial port on several operating systems
      String osname = System.getProperty("os.name","").toLowerCase();
      if ( osname.startsWith("windows") ) {
         // windows
         defaultPort = "COM5";
      } else if (osname.startsWith("linux")) {
         // linux
        defaultPort = "/dev/ttyS0";
      } else if ( osname.startsWith("mac") ) {
         // mac
         defaultPort = "????";
      } else {
         System.out.println("Sorry, your operating system is not supported");
         return;
      }
          
    
      System.out.println("Set default port to "+defaultPort);
      
		// parse ports and if the default port is found, initialized the reader
      portList = CommPortIdentifier.getPortIdentifiers();
      while (portList.hasMoreElements()) {
         portId = (CommPortIdentifier) portList.nextElement();
         if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
            if (portId.getName().equals(defaultPort)) {
               System.out.println("Found port: "+defaultPort);
               portFound = true;
               // init reader thread
               nulltest reader = new nulltest();
            } 
         } 
         
      } 
      if (!portFound) {
         System.out.println("port " + defaultPort + " not found.");
      } 
      
   } 

   //#############################################################################
   public void initwritetoport() {
      // initwritetoport() assumes that the port has already been opened and
      //    initialized by "public nulltest()"

      try {
         // get the outputstream
         outputStream = serialPort.getOutputStream();
      } catch (IOException e) {}

      try {
         // activate the OUTPUT_BUFFER_EMPTY notifier
         serialPort.notifyOnOutputEmpty(true);
      } catch (Exception e) {
         System.out.println("Error setting event notification");
         System.out.println(e.toString());
         System.exit(-1);
      }
      
   }

   
//#############################################################################
   public void writetoport(String Text) {
      System.out.println("Writing: "+Text);
      try {
         // write string to serial port
         outputStream.write(Text.getBytes());

      } catch (IOException e) {}
   }

   
//#############################################################################
   public nulltest() {
      // initalize serial port
      try {
         serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
      } catch (PortInUseException e) {}
   
      try {
         inputStream = serialPort.getInputStream();
      } catch (IOException e) {}
   
      try {
         serialPort.addEventListener(this);
      } catch (TooManyListenersException e) {}
      
      // activate the DATA_AVAILABLE notifier
      serialPort.notifyOnDataAvailable(true);
   
      try {
         // set port parameters
         serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, 
                     SerialPort.STOPBITS_1, 
                     SerialPort.PARITY_NONE);
      } catch (UnsupportedCommOperationException e) {}
      
      // start the read thread
      readThread = new Thread(this);
      readThread.start();
      
   }

   
//#############################################################################
   public void run() {
      // first thing in the thread, we initialize the write operation
      initwritetoport();
    
//      try {
//         while (true) {
//             //write string to port, the serialEvent will read it
//          
//             //writetoport("Hallo Marcel v2");
//            //Thread.sleep(500);
//            
//        }
//      } catch (InterruptedException e) {}
   } 

   
//#############################################################################
   public void serialEvent(SerialPortEvent event) {
      switch (event.getEventType()) {
      case SerialPortEvent.BI:
      case SerialPortEvent.OE:
      case SerialPortEvent.FE:
      case SerialPortEvent.PE:
      case SerialPortEvent.CD:
      case SerialPortEvent.CTS:
      case SerialPortEvent.DSR:
      case SerialPortEvent.RI:
      case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
         break;
      case SerialPortEvent.DATA_AVAILABLE:
         // we get here if data has been received
         byte[] readBuffer = new byte[20];
         try {
            // read data
             int numBytes=0;
            
            while (inputStream.available() > 0) {
               numBytes = inputStream.read(readBuffer);
            } 
            // print data
              byte [] buffer =new byte[numBytes];
             for(int i=0;i<numBytes;i++)
             {
                 buffer[i]=readBuffer[i];
             }
            String result  = new String(buffer);
            System.out.println("Read: "+result);
         } catch (IOException e) {}
   
         break;
      }
   } 

}
 
S

SlaterB

Gast
wo soll da ein Witz sein?
wenn du die main ausführst, dann setzt du statische Variablen wie portId,
wenn du main nicht ausführst, dann fehlen sie..
 
G

Guest

Gast
Main lassen wir auch ausführen, jedoch bleiben die fehlermeldungen

:cry:
 
S

SlaterB

Gast
lass dein Programm mit dir sprechen..

Code:
portList = CommPortIdentifier.getPortIdentifiers(); 
System.out.println("werde ich die portId setzen?: "+portList.hasMoreElements());  
while (portList.hasMoreElements()) { 
     portId = (CommPortIdentifier) portList.nextElement(); 
     System.out.println("portId ist: "+portId);
...



-------

public nulltest() { 
      // initalize serial port 
      try { 
         System.out.println("vor Zugriff, portId ist: "+portId);
         serialPort = (SerialPort) portId.open("SimpleReadApp", 2000); 
      } catch (PortInUseException e) {} 
...
}

welche dieser Ausgaben erscheinen bei deiner Ausführung?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Erste Schritte Stream-Aufruf vereinfachen Java Basics - Anfänger-Themen 3
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
X Methode bei mehrfachen Aufruf kein Effekt Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
E Aufruf auf Objekt mit übergebenem Wert? Java Basics - Anfänger-Themen 7
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
V Problem Aufruf einer Methode in einer Methode Java Basics - Anfänger-Themen 1
O Frage zum Aufruf überladener Methoden Java Basics - Anfänger-Themen 4
G funktions Aufruf aus GUI Java Basics - Anfänger-Themen 9
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
W Zeitversetzter Aufruf der Methoden Java Basics - Anfänger-Themen 6
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
H Aufruf einer Instanzmethode funktionert nicht. Java Basics - Anfänger-Themen 6
A Konstruktor Aufruf Java Basics - Anfänger-Themen 4
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
N Aufruf der Methode Java Basics - Anfänger-Themen 16
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
P URL für Lokalen Aufruf Java Basics - Anfänger-Themen 5
C OOP Aufruf von Methoden höherer Sichtbarkeit Java Basics - Anfänger-Themen 10
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
A Aufruf von Konstruktor aus Basisklasse Java Basics - Anfänger-Themen 7
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
D Array Methoden Aufruf. Java Basics - Anfänger-Themen 14
L Klassen Aufruf einer ueberschreibbaren Methode im Konstruktor Java Basics - Anfänger-Themen 4
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
Q Aufruf einer Klasse in einem Package Java Basics - Anfänger-Themen 7
C Aufruf funktioniert nicht Java Basics - Anfänger-Themen 10
T Aufruf einer Methoden aus einer Util-Klasse mit privatem Konstruktor Java Basics - Anfänger-Themen 7
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
C Exception beim Aufruf einer Methode Java Basics - Anfänger-Themen 2
A Aufruf einer Methode Java Basics - Anfänger-Themen 3
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
T Shell Script Aufruf mit Java Java Basics - Anfänger-Themen 7
R Aufruf statische Methode Java Basics - Anfänger-Themen 7
M Aufruf zum Objekt erstellen aus String Java Basics - Anfänger-Themen 5
K OOP Nachteil bei direktem Aufruf von run() auf Thread-Objekten Java Basics - Anfänger-Themen 2
J Aufruf der Methode Java Basics - Anfänger-Themen 6
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
E Konstruktor-Aufruf Java Basics - Anfänger-Themen 9
C Aufruf einer Funktion Java Basics - Anfänger-Themen 3
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
L Methoden aufruf Java Basics - Anfänger-Themen 3
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
N Methoden aufruf Java Basics - Anfänger-Themen 7
K Methoden aufruf von einer anderen Klasse Java Basics - Anfänger-Themen 7
S super() aufruf ausgabe Java Basics - Anfänger-Themen 3
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
F Aufruf von Methoden hintereinander gechachtelt??? Java Basics - Anfänger-Themen 8
E Mehrfache print ausgabe ohne Schleife oder Rekursiven aufruf? Java Basics - Anfänger-Themen 48
radiac CMD Windowskonsole und java aufruf in Vista 64 Java Basics - Anfänger-Themen 2
D Aufruf von WGET aus Java Java Basics - Anfänger-Themen 5
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Methoden Aufruf Java Basics - Anfänger-Themen 4
L abgeleitete Klasse - Aufruf mit vererbter Klasse? Java Basics - Anfänger-Themen 2
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
P seltsamer konsolen aufruf Java Basics - Anfänger-Themen 8
E Frage zum Objekt aufruf Java Basics - Anfänger-Themen 3
A Aufruf einer externen schon laufenden Anwendung Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben