Fechar um Jwindow

Criei uma classe com extends JWidow e usei como splash, porém não consigo fecha-la.

O único comando que fecha é

System.exit(0);

Já usei os comandos

 window.hide() ;
 dispose(); //Mas não funciona com JWindow 
 doDefaultCloseAction(); //Mas não funciona com JWindow

Seria o método dispose. Não entendi porque não funcionou. Como você fez para chamar o método?

entaum eu coloquei o nome da classe.dispose();

ficou assim:

splash.dispose();

Esse splash deve ser uma variável e não o nome da classe, certo?

Porque o mesmo objeto que foi exibido na tela, deve ser fechado com o método dispose.

a classe esta declarada desta maneira.

public class splash extends JWindow {

}

entaum eu devo usar o método dispose na imagem que eu abri?

Agora entendi. Usar o nomeDaClasse.dispose() está dando erro porque o método dispose não é estático, portanto ele deve ser chamado a partir da referência de um objeto.

Outra coisa, por convenção, é indicado que os nomes das classes iniciem com letra maiúscula. No seu caso deveria se chamar “Splash”.

Tem como você postar a parte que você exibe este splash? E utilizando a tag code: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

[code]package dommer;

import java.awt.Dimension;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.Timer;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;

public class splash extends JWindow{

AbsoluteLayout absoluto;
AbsoluteConstraints absimage, absbarra;
ImageIcon image;
JLabel jlabel;
JProgressBar barra;


public splash(){
    absoluto = new AbsoluteLayout();
    absimage = new AbsoluteConstraints(0,0);
    absbarra = new AbsoluteConstraints(0, 290);
    jlabel = new JLabel();
    image = new ImageIcon(this.getClass().getResource("splash.JPG"));
    barra = new JProgressBar();
    barra.setPreferredSize(new Dimension(445,15));

    jlabel.setIcon(image);
    this.getContentPane().setLayout(absoluto);
    this.getContentPane().add(jlabel, absimage);
    this.getContentPane().add(barra, absbarra);
    this.pack();
    this.setVisible(true);
    this.setLocationRelativeTo(null);


    new Thread(){

        public void run(){

            int i=0;

            while (i<101){
                barra.setValue(i);
                i++;
                try {
                    sleep(30);
                } catch (InterruptedException ex) {
                    Logger.getLogger(splash.class.getName()).log(Level.SEVERE, null, ex);
                }
            }                
            System.exit(0);
        }
    }.start();
}

}
[/code]

Isso é o que estou usando para fazer o splash

AA obrigado pela dica para padrão de criação de nome de classes.

Onde está:

System.exit(0);Deveria estar:

dispose();

O dispose deve ser chamado diretamente, sem o nome da classe na frente.

Muito Obrigado mesmo.

Agora esta funcionando