Ajuda com JOptionPane (não fechar com "x")

3 respostas
Spotik

Bom dia pessoal,
Minha dúvida é o seguinte, eu queria saber como impedir que ao clicar no ‘x’ de sair do JOPtionPane ele continue lá, forçando assim o usuario a clicar no yes, no ou cancel.
Vi que tem um exemplo disso no site da oracle, mas sinceramente aquilo me confundiu mais, e como sou meio iniciante resolvi perguntar aqui pra ver se alguém me da um exemplo mais simples!
Vlw!

3 Respostas

ViniGodoy

Geralmente o x do JOptionPane é equivalente ao cancel.

Mas se vc realmente quiser fazer isso, você deve usar o método createDialog:
import javax.swing.JDialog;
import javax.swing.JOptionPane;

public class NaoFeche {

	public static void main(String[] args) {
		JOptionPane pane = new JOptionPane("Tem certeza?", JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
		JDialog dialog = pane.createDialog("Confirmação");
		dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);		
		dialog.setVisible(true);
	}
}

Se você quiser desabilitar também que a Dialog feche com ESC, aí só copiando do exemplo da Oracle mesmo:
http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html#stayup

Spotik

Só não clicando no ‘X’ já serve…
Brigadão mesmo!

E

Eu acho que quando o usuário clica no X, deve considerar que ele quis clicar em Cancel :slight_smile:

Criado 7 de outubro de 2011
Ultima resposta 7 de out. de 2011
Respostas 3
Participantes 3