Problema con clases

Iniciado por axeelcs, 7 Julio 2012, 19:04 PM

0 Miembros y 1 Visitante están viendo este tema.

axeelcs

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)

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 :

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 :

CitarException 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í :

private JTextArea areaTexto = new JTextArea();

public JTextArea getAreaTexto() {
return areaTexto;
}


Y al botón lo llamo así :

abrir.addActionListener(new abrirArchivo());


Desde ya, les agradezco infinitamente su ayuda !

axeelcs

Agradecería mucho mucho su ayuda :$, la verdad es que no se como resolverlo :(
Por más que empiece un nuevo proyecto.

axeelcs

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 .

axeelcs


axeelcs

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.