Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: NekroByte en 17 Julio 2007, 03:42 AM

Título: processWindowEvent
Publicado por: NekroByte en 17 Julio 2007, 03:42 AM
Estoy practicando Java haciendo un programa y bla bla bla, todo bien hasta ahí. El caso es que cuando le doy a la tachita de cerrar (mi programa extends Frame) no cierra, no pasa nada, por lo que decidí meterme con las clases que heredó ( lo he probado con System.exit() y con dispose() ):

Código (java) [Seleccionar]
protected void processWindowEvent(WindowEvent e){

if (e.WINDOW_CLOSING) System.exit(0);

}


Y me tira error de que no encuentra el símbolo (cannot find symbol), y la única forma de componerlo es que convierta el

Código (JAVA) [Seleccionar]
import java.awt.*;

Código (Java) [Seleccionar]
import java.awt.*;
import java.awt.event.*;


Y yo me pregunto, ¿qué no se supone que el asterisco es para incluir todo el paquete?
Título: Re: processWindowEvent
Publicado por: Casidiablo en 17 Julio 2007, 23:11 PM
Esto sucede porque el asterisco incluye TODAS las clases de un paquete, pero event es un paquete no una clase, por lo tanto no lo incluye.

Saludos!
Título: Re: processWindowEvent
Publicado por: NekroByte en 18 Julio 2007, 05:28 AM
Me imagino que .awt.event es un subpaquete de .awt, porque yo lo que creía era que el .* incluía todo lo que estaba dentro del paquete: clases, subclases y subpaquetes, en fin, todo.

Pero veo que sólo incluye las clases y no los demás paquetes.

Gracias, Casidiablo.
Título: Re: processWindowEvent
Publicado por: egyware en 19 Julio 2007, 17:50 PM
no has intendado añadir un WindowListener
y en el metodo WindowClosing agregar el System.exit(0);
xau................. ;D

PS:mmmm viendo tu codigo me parece algo extraño
Código (java) [Seleccionar]

protected void processWindowEvent(WindowEvent e){
if (e.WINDOW_CLOSING) System.exit(0);
}

e.WINDOW_CLOSING que es un int o un boolean porque la sentencia if solo recibe booleans

ps: jiji aqui van extractos de las clases JDialog y Window cimi procesan el processWindowEvent
Código (java) [Seleccionar]

// extracto de la clase JDialog
protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);

        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
            switch(defaultCloseOperation) {
              case HIDE_ON_CLOSE:
                 setVisible(false);
                 break;
              case DISPOSE_ON_CLOSE:
                 setVisible(false);
                 dispose();
                 break;
              case DO_NOTHING_ON_CLOSE:
                 default:
                 break;
            }
        }
}

//extracto de la clase Window
protected void processWindowEvent(WindowEvent e) {
        WindowListener listener = windowListener;
        if (listener != null) {
            switch(e.getID()) {
                case WindowEvent.WINDOW_OPENED:
                    listener.windowOpened(e);
                    break;
                case WindowEvent.WINDOW_CLOSING:
                    listener.windowClosing(e);
                    break;
                case WindowEvent.WINDOW_CLOSED:
                    listener.windowClosed(e);
                    break;
                case WindowEvent.WINDOW_ICONIFIED:
                    listener.windowIconified(e);
                    break;
                case WindowEvent.WINDOW_DEICONIFIED:
                    listener.windowDeiconified(e);
                    break;
                case WindowEvent.WINDOW_ACTIVATED:
                    listener.windowActivated(e);
                    break;
                case WindowEvent.WINDOW_DEACTIVATED:
                    listener.windowDeactivated(e);
                    break;
                default:
                    break;
            }
        }
}