Null OutputStream

NullPointerException:

[code]package testeserial;

import javax.comm.;
import java.io.
;
import java.awt.TextArea;
import java.awt.event.*;
import java.util.TooManyListenersException;

/**
* A class to handle <code>KeyEvent</code>s generated by the messageAreaOut.
* When a <code>KeyEvent</code> occurs the <code>char</code> that is
* generated by the event is read, converted to an <code>int</code> and
* writen to the <code>OutputStream</code> for the port.
*/
class KeyHandler extends KeyAdapter {
private static KeyHandler INSTANCE;
private static Entrada_Saida es;

/**
 * Creates the KeyHandler.
 * @param os The OutputStream for the port.
 */
private KeyHandler&#40;&#41; &#123;&#125;
   
    public void setES&#40;Entrada_Saida es&#41; &#123;
    this.getInstance&#40;&#41;.es = es.getInstance&#40;&#41;;
&#125;
   
    public Entrada_Saida getES&#40;&#41; &#123;
        return this.getInstance&#40;&#41;.es;
    &#125;

    public void setValor&#40;int valor&#41; &#123;
        String strValor = Integer.toString&#40;valor&#41;;
        byte&#91;&#93; bytes = strValor.getBytes&#40;&#41;;
        try &#123;
            this.getInstance&#40;&#41;.getES&#40;&#41;.getInstance&#40;&#41;.getOS&#40;&#41;.write&#40;bytes&#41;; // NESTA LINHA!
        &#125; catch &#40;IOException e&#41; &#123;&#125;

    &#125;
   
public void keyTyped&#40;KeyEvent evt&#41; &#123;
    char newCharacter = evt.getKeyChar&#40;&#41;;

        if &#40;es == null&#41; &#123;
            es = es.getInstance&#40;&#41;;
        &#125;
       
    try &#123;
    es.getInstance&#40;&#41;.getOS&#40;&#41;.write&#40;&#40;int&#41; newCharacter&#41;;
    &#125; catch &#40;IOException e&#41; &#123;
    System.err.println&#40;&quot;OutputStream write error&#58; &quot; + e&#41;;
    &#125;
    &#125;
   
    public static KeyHandler getInstance&#40;&#41; &#123;
        if &#40;INSTANCE == null&#41; &#123;
            INSTANCE = new KeyHandler&#40;&#41;;
        &#125;
        return INSTANCE;
    &#125;
&#125;

[/code]

[color=“darkblue”]
O problema é que o valor de OS é considerado null, não sei o motivo… :cry:
[/color]

/*
 * Entrada_Saida.java
 *
 * Created on 31 de Maio de 2007, 17&#58;55
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package testeserial;

import javax.comm.*;
import java.io.*;
import java.awt.TextArea;
import java.awt.event.*;
import java.util.TooManyListenersException;

public class Entrada_Saida &#123;
    private static Entrada_Saida INSTANCE;
    private OutputStream os;
    private InputStream is;
   
    /** Creates a new instance of Entrada_Saida */
    private Entrada_Saida&#40;&#41; &#123;&#125;
   
    public void setOS&#40;OutputStream os&#41; &#123;
        this.getInstance&#40;&#41;.os = os;
    &#125;
   
    public OutputStream getOS&#40;&#41; &#123;
        return this.getInstance&#40;&#41;.os;
    &#125;
   
    public void setIS&#40;InputStream is&#41; &#123;
        this.getInstance&#40;&#41;.is = is;
    &#125;
   
    public InputStream getIS&#40;&#41; &#123;
        return is;
    &#125;
   
    public static Entrada_Saida getInstance&#40;&#41; &#123;
        if &#40;INSTANCE == null&#41; &#123;
            INSTANCE = new Entrada_Saida&#40;&#41;;
        &#125;
        return INSTANCE;
    &#125;
   
&#125;

muito obrigada,
Iúna.

[color=“red”]*Editado: use BBCode em suas mensagens no fórum. Jair Elton. :joia:[/color]

iúna

Se eu entendi bem na sua classe Entrada_Saida se a variável INSTANCE for null ele instancia o objeto, porém se voce observar o seu construtor nao inicia nada, ou seja, o método getInstance() retorna uma instancia nula do objeto
tenta dentro do teu construtor na classe Entrada_saida iniciar as variáveis os e is

Se continuar com erro posta a linha do erro aqui, ou um trecho dele