[Resolvido] Dispose(); Em todas as telas

Bom dia, alguém poderia me informar como poderia finalizar todos os JFrames abertos de uma vez, existe algum método que faça isso? Obrigado!

Penso que usar System.exit(0); é o suficiente

Oi, esse método é responsável por encerrar a aplicação, eu gostaria de saber se existe alguma forma de apenas fechar os JFrame e que a aplicação ficasse rodando.

Voce pode guardar as instancias de todos os JFrames e em dado momento
chamar as instancias e usando

frame1.dispatchEvent(new WindowEvent(frame1, WindowEvent.WINDOW_CLOSING));
ou
setVisible(false);
dispose();

Ou ainda ter uma thread dentro de cada JFrame e ficar verificando determinado estado de uma variavel e fazer o fechamento quando cumprir a exigencia

A unica maneira que estou a ver é guardar a instancia do jframe cada vez que o abrir e usá-la para o fechar

public static void fecharTodosOsJFrames() {
    for (JFrame jFrame : obterJanelasDoTipo(JFrame.class)) {
        jFrame.dispose();
    }
}

public static <W extends Window> List<W> obterJanelasDoTipo(Class<W> tipo) {
    List<W> janelas = new LinkedList<>();
    for (Window janela : Window.getWindows()) {
        if (tipo.isAssignableFrom(janela )) {
            janelas.add((W) janela);
        }
    }
    return janelas;
}
1 curtida

As linhas 1,2 e 4 estão com erros e eu não tô conseguindo identificar

1 type list does not take parameters
2 type list does not take parameters
4 imcompatible types: window cannot be converted to class <?>

Tem certeza que está usando java.util.List?

Qual versão do Java está usando?

Estava faltando o import o que corrigiu o erro da linha1 e 2 mas a linha 4continua com um erro e a palavra janela esta sublinhada apresentando a mensagem

incompatible types: window cannot be converted to class <?>

Falha minha:

public static <W extends Window> List<W> obterJanelasDoTipo(Class<W> tipo) {
    List<W> janelas = new LinkedList<>();
    for (Window janela : Window.getWindows()) {
        if (tipo.isAssignableFrom(janela.getClass())) {
            janelas.add((W) janela);
        }
    }
    return janelas;
}
1 curtida

Testei, funcionou perfeitamente, muito obrigado!