Foros del Web » Programación para mayores de 30 ;) » Java »

Error java.lang.NullPointerException Menu de colores

Estas en el tema de Error java.lang.NullPointerException Menu de colores en el foro de Java en Foros del Web. Hola!! Estoy ejecutando un código en java y me sale un error al correrlo, el programa corre pero al ejecutar alguna acción se termina y ...
  #1 (permalink)  
Antiguo 13/05/2015, 14:46
 
Fecha de Ingreso: septiembre-2010
Mensajes: 29
Antigüedad: 13 años, 7 meses
Puntos: 1
Pregunta Error java.lang.NullPointerException Menu de colores

Hola!!

Estoy ejecutando un código en java y me sale un error al correrlo, el programa corre pero al ejecutar alguna acción se termina y quiero saber si me pueden ayudar a conocer la falla

El error es:

java.lang.NullPointerException

Aqui esta el codigo:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
public class AplicacionSwing5 extends JPanel implements ActionListener {
private Style estiloMorado,estiloGris,estiloCeleste,estiloRojo,e stiloAzul;
private JTextPane texto;
public AplicacionSwing5() {
setLayout( new BorderLayout() );
JMenuBar menu = new JMenuBar();
JMenu estilo = new JMenu( "Estilo" );
menu.add( estilo );
JMenuItem mi = new JMenuItem( "Morado" );
estilo.add( mi ); mi.addActionListener(this);
mi = new JMenuItem( "Gris" );
estilo.add( mi ); mi.addActionListener(this);
mi = new JMenuItem( "Celeste" ); estilo.add( mi );
mi.addActionListener(this); mi = new JMenuItem( "Rojo" );
estilo.add( mi ); mi.addActionListener(this);
mi = new JMenuItem( "Azul" ); estilo.add( mi );
mi.addActionListener( this );
add( menu,BorderLayout.NORTH );
StyleContext sc = new StyleContext();
estiloMorado = sc.addStyle( null,null );
StyleConstants.setForeground( estiloMorado,Color.magenta );
estiloGris = sc.addStyle( null,null );
StyleConstants.setForeground( estiloGris,Color.gray );
StyleConstants.setFontSize( estiloGris,24 );
estiloCeleste = sc.addStyle( null,null );
StyleConstants.setForeground( estiloCeleste,Color.cyan );
estiloRojo = sc.addStyle( null,null );
StyleConstants.setForeground( estiloRojo,Color.red );
estiloAzul = sc.addStyle( null,null );
StyleConstants.setForeground( estiloAzul,Color.blue );
DefaultStyledDocument doc = new DefaultStyledDocument(sc);
JTextPane texto = new JTextPane(doc);
add( texto,BorderLayout.CENTER ); }

public void actionPerformed( ActionEvent e ) {
Style estilo = null; String color = (String) e.getActionCommand();
if( color.equals( "Morado" ) ) {
estilo = estiloMorado; }
else if( color.equals( "Celeste" ) )
{ estilo = estiloCeleste;
} else if( color.equals( "Gris" ) )
{ estilo = estiloGris; }
else if( color.equals( "Rojo" ) )
{ estilo = estiloRojo; }
else if( color.equals( "Azul" ) )
{ estilo = estiloAzul; }
texto.setCharacterAttributes( estilo,false );
}

public static void main( String argv[] )
{ JFrame app = new JFrame( "Tutorial de Java, Swing" );
app.addWindowListener( new WindowAdapter()
{ public void windowClosing( WindowEvent evt ){System.exit( 0 ); } } );
app.getContentPane().add( new AplicacionSwing5(),BorderLayout.CENTER );
app.setSize( 300,180 ); app.setVisible( true );
}
}

El error se marca en esta linea: texto.setCharacterAttributes( estilo,false ); y produce una excepcion. Alguien sabe cual es la razon?
  #2 (permalink)  
Antiguo 14/05/2015, 01:51
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Error java.lang.NullPointerException Menu de colores

Tienes un atributo de instancia llamado texto
Código Java:
Ver original
  1. private Style estiloMorado,estiloGris,estiloCeleste,estiloRojo,e stiloAzul;
  2. private JTextPane texto;

sin embargo en el constructor

Código Java:
Ver original 

inicializas una variable local texto, por lo que texto de la clase sigue siendo null, y ese es el que intentas utilizar aquí

texto.setCharacterAttributes( estilo,false );

La próxima vez que pongas código, usa el Highlight, así es muy complicado leer código.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: colores, programa, string, swing
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:42.