Porque no cierra normalmente ?

andhe7
29 de Abril del 2005
Tengo un programa sencillo relativmente es para clase ded programacion de III semestre de sistemas pero tengo un problema al compilar todo sale bien y ningun error y al iniciar la aplicacion resulta de que la ventana no cierra habiendo yo declarado el evento para cerrarla todo lo que tenia que funcionar del programa funciona pero no me cierra con la "X" me toca finalizarlo ded otra forma cual sera el problema hay les mando el codigo del programa para que me ayuden si pueden.

import java.awt.*;
public class Aplicacion extends Frame
{
static final int HOR_TAMANO=450;
static final int VER_TAMANO=350;
Label lb1 = new Label("INSTITUTO DE EDUCACON TECNICA PROFESIONAL",Label.CENTER);
Label lb2 = new Label("TERCER SEMESTRE - SISTEMAS",Label.CENTER);
TextField tf1= new TextField(15);
TextField tf2= new TextField(15);
TextField tf3= new TextField(15);
TextField tf4= new TextField(15);
TextField tf5= new TextField(5);
TextField tf6= new TextField(5);
TextField tf7= new TextField(5);
TextField tf8= new TextField(5);
double n1,n2,n3,def;
String nombre="",apellido="",asig="",codigo="";

public Aplicacion()
{
super("DATOS DE ESTUDIANTES");
GridBagLayout gridbag=new GridBagLayout();
GridBagConstraints gbCon=new GridBagConstraints();
setLayout(gridbag);
setBackground(new Color(0,153,153));
gbCon.weightx=4.0;
gbCon.weightx=0.0;
gbCon.anchor=GridBagConstraints.RIGHT;
gbCon.fill=GridBagConstraints.NONE;
gbCon.gridwidth=GridBagConstraints.REMAINDER;
Font ft0=new Font("Default",Font.BOLD,12);
tf8.setEditable(false);
tf2.setFont(ft0);
tf3.setFont(ft0);
gridbag.setConstraints(lb1,gbCon);
add(lb1);
gridbag.setConstraints(lb2,gbCon);
add(lb2);
add(new Label("Identificacion"));
gridbag.setConstraints(tf1,gbCon);
add(tf1);
add(new Label("Nombre"));
gridbag.setConstraints(tf2,gbCon);
add(tf2);
add(new Label("Apellido"));
gridbag.setConstraints(tf3,gbCon);
add(tf3);
add(new Label("Asignatura"));
gridbag.setConstraints(tf4,gbCon);
add(tf4);
add(new Label("Nota 1"));
gridbag.setConstraints(tf5,gbCon);
add(tf5);
add(new Label("Nota 2"));
gridbag.setConstraints(tf6,gbCon);
add(tf6);
add(new Label("Nota3"));
gridbag.setConstraints(tf7,gbCon);
add(tf7);
add(new Label("Definitiva"));
gridbag.setConstraints(tf8,gbCon);
add(tf8);
pack();//
resize(HOR_TAMANO,VER_TAMANO);
show();
}

public boolean handleEvent(Event evt)
{
switch(evt.id)
{
case Event.WINDOW_DESTROY:
{
System.exit(0);
return true;
}
case Event.ACTION_EVENT:
{
codigo=tf1.getText();
nombre=tf2.getText();
apellido=tf3.getText();
asig=tf4.getText();
Double dx1 = new Double(tf5.getText());
n1=dx1.doubleValue();
Double dx2 = new Double(tf6.getText());
n2=dx2.doubleValue();
Double dx3 = new Double(tf7.getText());
n3=dx3.doubleValue();
def=(n1+n2+n3)/3;
tf8.setText(""+def);
}
default:
return false;
}
}
public static void main(String ars[])
{
new Aplicacion();
}
}

Estoyaqui
29 de Abril del 2005
Te voy a poner un codigo que a mi me funciona, en el constructor pones:

this.addWindowListener(new X());

fuera del constructor:

class X extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}

Prueba con este trozo de programa, cambiando en el tuyo lo necesario para que funcione.

PD: Si te da fallo en extends, pues cambiale por implements.

Un saludo

sal00m
29 de Abril del 2005
Pues no se que decirte... pero lo acabo de probar y a excepcion de gbCon.anchor=GridBagConstraints.RIGHT; que me dice que no sabe lo que es RIGHT... el resto compila bien...

Lo he ejecutado y sale el formulario ese (es parecido a un formulario) y si le das a cerrar se cierra correctamente... asi que no se que es lo que te puede pasar.

sal00m
29 de Abril del 2005
Por cierto se me olvido decirte que deberias cambiar RIGHT por EAST que es lo que acepta el gridbag... pero vamos... que como veas

Lo que no se es como te compila con RIGHT jejeje