Foro de elhacker.net

Programación => Java => Mensaje iniciado por: axeelcs en 7 Julio 2012, 19:04 pm



Título: Problema con clases
Publicado por: axeelcs en 7 Julio 2012, 19:04 pm
Buenas, disculpen las molestias, pero me supera este error ...
Yo había programado toda la interfaz con sus funciones en una misma clase (grave error) .
Ahora que lo quiero separar de a poquito, primero saqué la función de abrir archivo (a continuación la clase)

Código:
public void actionPerformed(ActionEvent arg0) {

fc = new JFileChooser();
FileFilter filter1 = new ExtensionFileFilter("T, ND, NH", new String[] {
"T", "ND", "NH" });
fc.setFileFilter(filter1);

// fc.getSelectedFile().getName().endsWith("T");

int seleccion = fc.showOpenDialog(null);

if (seleccion == JFileChooser.APPROVE_OPTION) {
File fichero = fc.getSelectedFile();
BufferedReader br = null;
//interfaz.getAreaTexto().enable(true);
try {
br = new BufferedReader(new FileReader(fichero));
String linea = null;
String lineaTotal = "";
try {
linea = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while (linea != null) {

lineaTotal = lineaTotal + linea
+ System.getProperty("line.separator");

linea = br.readLine();
}

interfaz.getAreaTexto().setText(lineaTotal);

/*if (fichero.getName().endsWith("ND")) {
interfaz.getAreaTexto().setWrapStyleWord(true);

}*/

br.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}



}

No hace falta que se lea, tengo declarados en la clase :

Código:
	private Interfaz interfaz;
private JFileChooser fc;
Y claramente la clase hereda de ActionListener .. el problema es que cuando en la interfaz, toco el botón abrir, selecciono el archivo, me aparece este error :

Citar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
   at abrirArchivo.actionPerformed(AbrirArchivo.java:117)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$000(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)

Siempre sobre el getAreaTexto, y la verdad no se que puede ser, me esta rompiendo la cabeza ...

Y en la interfaz probé de todo, ahora lo tengo así :

Código:
	private JTextArea areaTexto = new JTextArea();

Código:
	public JTextArea getAreaTexto() {
return areaTexto;
}

Y al botón lo llamo así :

Código:
		abrir.addActionListener(new abrirArchivo());


Desde ya, les agradezco infinitamente su ayuda !


Título: Re: Problema con clases
Publicado por: axeelcs en 7 Julio 2012, 21:54 pm
Agradecería mucho mucho su ayuda :$, la verdad es que no se como resolverlo :(
Por más que empiece un nuevo proyecto.


Título: Re: Problema con clases
Publicado por: axeelcs en 7 Julio 2012, 22:32 pm
Me parece que el problema viene por el lado de que no inicializo interfaz, por lo que esta trabajando sobre null .

Pero si en la otra clase pongo interfaz = new Interfaz(); se me abre otra ventana :S

Y no me permite seguir usando los otros botones porque estan en null .


Título: Re: Problema con clases
Publicado por: axeelcs en 8 Julio 2012, 17:58 pm
Por favor :(


Título: Re: Problema con clases
Publicado por: axeelcs en 8 Julio 2012, 19:19 pm
Ya lo solucione, no se si estará bien o no, pero en la clase de prueba donde inicializo la interfaz = new Interfaz() lo hice estático, de manera que en las clases de abrir archivo, nuevo archivo, etc, creo un private Prueba menu, donde llamo a todas las funciones.
Espero que este bien resuelto.