Jackye
Março 3, 2012, 10:48pm
#1
Olá!
Tentei adicionar uma mensagem de alerta de segurança para o usuário quando ele for fechando a janela de cadastro, mas não funcionou.
Eu fiz o seguinte:
Defini o evento windowClosing no frame e adicionei o seguinte metodo:
Object[] options = {"Sim", "Não"};
int i = JOptionPane.showOptionDialog(null,
"Tem certeza que deseja fechar esta janela?", "Saída",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
options, options[1]);
if (i == JOptionPane.YES_OPTION) {
System.exit(0);
}
Mas a janela fecha independente da escolha!
// Isso no Janela
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
sair();
}
}
});
// método para saida
public void sair() {
String[] textMessages = { "Sim", "Não", "Cancelar" };
if (JOptionPane.showOptionDialog(null, "Deseja realmente sair?",
"Atenção", JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, textMessages, null) == 0) {
System.exit(0);
}
}
Jackye
Março 4, 2012, 10:48am
#3
Olá!
Inseri o evento a seguir no escorpo do formulario:
public CadastrarAutor() {
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
sair();
}
}
});
}
E coloque o seguinte metodo sair dentro do frame mesmo.
public void sair() {
String[] textMessages = { "Sim", "Não", "Cancelar" };
if (JOptionPane.showOptionDialog(null, "Deseja realmente sair?",
"Atenção", JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, textMessages, null) == 0) {
System.exit(0);
}
}
Belezza, aparece a mensagem de alerta, e as opções para o usuario escolher, mas qualquer que seja a escolha ela sempre fecha.
yhhik
Março 4, 2012, 11:08am
#4
veja se resolve.
[code]import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class TesteGuj extends JFrame {
public TesteGuj() {
this.addWindowListener(new WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
int selectedOption = JOptionPane.showConfirmDialog(null,"Deseja Sair Realmente?", "Sair",JOptionPane.YES_NO_OPTION);
if (selectedOption == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
}
});
this.setSize(300,300);
}
public static void main(String[] args) {
new TesteGuj().setVisible(true);
}
}
[/code]