elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Cómo puedo cerrar un JFrame desde un método?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo puedo cerrar un JFrame desde un método?  (Leído 14,876 veces)
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
¿Cómo puedo cerrar un JFrame desde un método?
« en: 8 Marzo 2012, 19:46 pm »

Buenas a todos.

Pues eso, que no sé cómo cerrar un JFrame desde un método....

La historia es que tengo un JFrame con unos cuantos botones. Al pulsarlos, llamo a una función estática y necesito que ese método me cierre el JFrame, con un dispose().

this.dispose() no ha funcionado, y pasar como parámetro al método el JFrame haciendo esto en la llamada tp:
Código
  1. metodo((JFrame)getParent()); //esto me da excepción de nullpointer al hacer dispose

Gracias!


En línea

visualfree

Desconectado Desconectado

Mensajes: 201


Ver Perfil
Re: ¿Cómo puedo cerrar un JFrame desde un método?
« Respuesta #1 en: 17 Marzo 2012, 07:39 am »

Te hice un pequeño ejemplo espero te sirva...

Código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Ejemplo{
        public static void main(String[] args)
        {
                Ventana v=new Ventana();
                v.setVisible(true);
        }
}
class Ventana extends JFrame{
        public Ventana()
        {
                this.setTitle("Ventana");
                this.setSize(200,200);
                NuevoPanel p=new NuevoPanel();
                add(p);
        }
}
class NuevoPanel extends JPanel{
        JButton btnCerrar=new JButton("Cerrar Programa");
        public NuevoPanel()
        {
                this.setLayout(new BorderLayout());
                this.add(btnCerrar);
                OyenteCerrar cerrar=new OyenteCerrar();
                btnCerrar.addActionListener(cerrar);
        }
        class OyenteCerrar implements ActionListener{
                public void actionPerformed(ActionEvent e)
                {
                        System.exit(0);
                }
        }
}


En línea

|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿Cómo puedo cerrar un JFrame desde un método?
« Respuesta #2 en: 17 Marzo 2012, 13:31 pm »


Código:
                        System.exit(0);
¿Eso no cierra toda la aplicación, y no solo ese JFrame?
De todas formas, lo acabé resolviendo cambiando el método donde llamo a dispose() a no estático y funcionó todo sin problema. Disculpas por olvidarme de ponerlo aquí.

Gracias por el interés visualfree
En línea

aloncito3x

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: ¿Cómo puedo cerrar un JFrame desde un método?
« Respuesta #3 en: 3 Mayo 2012, 08:01 am »

Hola Miguel puedes mostrarme el ejemplo completo. también deseo cerrar un jframe desde un método. gracias espero me puedas responder
En línea

raul_samp

Desconectado Desconectado

Mensajes: 36



Ver Perfil
Re: ¿Cómo puedo cerrar un JFrame desde un método?
« Respuesta #4 en: 3 Mayo 2012, 14:18 pm »

Método Dispose heredado por JFrame de Window
En línea

Yeah Mr. White, yes science!!
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿Cómo puedo cerrar un JFrame desde un método?
« Respuesta #5 en: 3 Mayo 2012, 17:06 pm »

Esta misma función cuando la declaro como estática no me funcionaba el dispose... no sé si sera lo que necesitas aloncito3x, échale un vistacillo... esto es un método para un ahorcado que hice.
Saludos.
Código
  1. void comprobarLetra(char letra){
  2.        JButton boton = compruebaBoton(letra);
  3.        if(boton.isEnabled()){
  4.            //System.out.println(palabra);
  5.            if(palabra.indexOf(letra) != -1){
  6.                labelLetrasAcertadas.setText("");
  7.                labelInfo.setForeground(Color.green);
  8.                labelInfo.setText("¡Has acertado una letra! "+letra);
  9.                boton.setBackground(Color.green);
  10.                for(int i=0; i<palabra.length(); i++){
  11.                    if(palabra.substring(i, i+1).equals(String.valueOf(letra))){
  12.                        aciertos++;
  13.                        bien[i]=String.valueOf(letra).toUpperCase()+" ";
  14.                    }
  15.                }
  16.                for(int i=0; i<bien.length; i++){
  17.                    labelLetrasAcertadas.setText(labelLetrasAcertadas.getText()+bien[i]);
  18.                }
  19.            }
  20.            else{
  21.                erroresRestantes--;
  22.                labelInfo.setForeground(Color.red);
  23.                labelInfo.setText("Esa letra no está en la palabra... "+letra);
  24.                ImageIcon icono = new ImageIcon("src/img/"+String.valueOf(6-erroresRestantes) +".png");
  25.                labelDibujo.setIcon(icono);
  26.                labelDibujo.setText(String.valueOf(erroresRestantes) +" fallos restantes.");
  27.                boton.setBackground(Color.red);
  28.            }
  29.  
  30.            if(erroresRestantes <= 0){
  31.                JOptionPane.showConfirmDialog(null, "¡Has agotado los fallos!\nOtra vez será.\nLa palabra era '"+palabra+"'.", "Fin de la partida", JOptionPane.PLAIN_MESSAGE);
  32.                Ahorcado.princi.setVisible(true);
  33.                //ventanaPrincipal.game.
  34.                dispose();
  35.  
  36.            }
  37.            else if(aciertos==palabra.length()){
  38.                JOptionPane.showConfirmDialog(null, "¡Has acertado la palabra!\nEnhorabuena", "Fin de la partida", JOptionPane.PLAIN_MESSAGE);
  39.                Ahorcado.princi.setVisible(true);
  40.                //ventanaPrincipal.game.
  41.                dispose();
  42.            }
  43.        boton.setEnabled(false);
  44.        }
  45.    }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al cerrar JFrame
Java
diego_lp 2 7,762 Último mensaje 1 Junio 2010, 23:53 pm
por sapito169
pregunta simple sobre JFrame en netbeans ,como Cerrar ventana especifica????
Java
XpandyX 3 60,755 Último mensaje 1 Mayo 2014, 19:04 pm
por waltgm
Como quitar/ocultar el boton Cerrar(X) de un JFrame
Java
GUST_UNAD 1 7,482 Último mensaje 30 Septiembre 2012, 21:09 pm
por sapito169
Cómo ejecutar un metodo de un arraylist en otro jFrame
Java
Finishim 1 3,682 Último mensaje 27 Noviembre 2015, 02:17 am
por PabloPbl
cerrar jinternalframe desde jframe
Java
soy_nicanor 4 9,983 Último mensaje 20 Agosto 2021, 06:32 am
por Bultoesal
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines