Iniciando em Java

Escrevi o programa abaixo. Quando executo recebo “NullPointerException”. Alguém pode me ajudar a resolver o problema.
Muito Obrigado.


// Programinha para apresentar um cardápio usando um objeto combo

import java.awt.; // importa a classe awt ------------------------------------
import java.awt.event.
;

class exPCombo extends Frame implements ItemListener
{
// declaração dos objetos --------------------------------------------------
Label l1;
TextField t1;
Choice combo;

// método main inicia a execução do aplicativo Java ------------------------
public static void main( String args[] )
{
    // cria a janela de apresentação herdando argumentos de FechaJanela ----
    exPCombo Janela = new exPCombo();
    Janela.addWindowListener( new FechaJanela() );
    Janela.show();
}

// inicia o método construtor do aplicativo --------------------------------
exPCombo()
{
    setTitle( "Apresentação de Cardápio" );
    setSize( 300, 100);
    setLayout( new FlowLayout( FlowLayout.LEFT ));
    // objetos -------------------------------------------------------------
    l1 = new Label( "Dia escolhido: " );
    l1.setFont( new Font( "verdana", Font.BOLD, 10 ));
    l1.setForeground( Color.blue );
    t1.setEditable( false );
    t1.setForeground( Color.red );
    // combo ---------------------------------------------------------------
    combo = new Choice();   // inicia o objeto combo
    combo.add( "Segunda-feira" );   combo.add( "Terça-feira" );
    combo.add( "Quarta-feira" );   combo.add( "Quinta-feira" );
    combo.add( "Sexta-feira" );     combo.add( "Sábado" );
    combo.add( "Domingo" );
    // inserindo os objetos na interface -----------------------------------
    combo.addItemListener( this );
    add(l1);    add(combo);     add(t1);
    
}
// método itemStateChanged reconhece o click do mouse na opção do combo ----
public void itemStateChanged( ItemEvent e )
{
    if ( e.getSource() == combo )
    {
        l1.setText( "Dia escolhido: " + combo.getSelectedItem() );
    
        // apresenta o cardápio de acordo com a opção escolhida ------------
        switch ( combo.getSelectedIndex() )
        {
            case 0: t1.setText( "Carne cozida" ); break;
            case 1: t1.setText( "Frango assado" ); break;
            case 2: t1.setText( "Feijoada" ); break;
            case 3: t1.setText( "Picanha na brasa" ); break;
            case 4: t1.setText( "Muqueca de lagosta" ); break;
            case 5: t1.setText( "Lazanha" ); break;
            case 6: t1.setText( "Frango com pequi" ); break;
        }
    }
    
}

}

voce não está incializando todos os componentes internos ao frame, por exemplo no construtor da classe voce nao faz t1 = new TextField(); entao quando voce tenta acessar t1 em t1.setEditable(false); é estourada a excecao.

espero ter ajudado

Obrigado pela resposta. Erro de iniciante, mesmo.

Calma calma, estes erros acontecem! :slight_smile:
O problema é que quando você apenas cria a variável, ela recebe valor de null.
quando vc tenta invocar um método, seria como se você fizesse (null).metodo();

o que não existe!
Não vá sair instanciando(Objeto obj = new Objeto()) todo mundo não heim!
Deixe para criar os objetos quando realmente precisar!

[]`s