Ola,
Estou com um problema na hora de fechar o Frame, eu questiono o usuario se deseja realmente fechar o frame e independente da resposta ele fecha…Eu estou querendo que ele cancele o fechamento…
O codigo esta abaixo, soh copiar e compila:
package controle;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
import javax.swing.border.LineBorder;
/**
* @author Paulo Henrique
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ControlePrincipal extends JFrame {
public ControlePrincipal(){
TextoAjuda = "INICIO";
menu = new JMenuBar();
MenuUsuario = new JMenu();
MenuCliente = new JMenu();
MenuProduto = new JMenu();
PainelStatus = new JPanel();//painel de status
PainelDescricao = new Descritor(TextoAjuda);
PainelDesktop = new JPanel();//painel onde ficara o desktop
PainelEsquerda = new JPanel();//Painel onde ficara o atalho da esquerda
PainelDireita = new JPanel();
UsuarioLogado = new JLabel();
HoraAtual = new JLabel();
Desk = new JDesktopPane();
String Titulo = "SCC - Sistema de Controle de Caixa"
+"versão 1.0 - Registrado para:"
+" ANDREA AVIAMENTOS";
getContentPane().setLayout(new BorderLayout());//setando o layout do frame
setTitle(Titulo);//setando titulo
setPreferredSize(new Dimension(FrameLargura,FrameAltura));//definindo o tamanho
setResizable(false);//nao permitindo mudanca no tamanho do frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent evt){
String ConfirmaSaida = " CONFIRMAR SAIDA ? ";
String TituloPane = "CONFIRMAÇÃO DE SAIDA";
Object[] options={"SIM","NAO"};
int i = JOptionPane.showOptionDialog(null,
ConfirmaSaida,TituloPane,JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,null,options,options[0]);
//JOptionPane.showMessageDialog(null,"VALOR:"+i,"T",JOptionPane.INFORMATION_MESSAGE);
if(i==0)
System.exit(0);
else{
JOptionPane.showMessageDialog(null,"VOLTANDO AO PROGRAMA","RETORNO",JOptionPane.INFORMATION_MESSAGE);
//repaint(); tentei isso mas nao funcionou
}
}
});
PainelStatus.setLayout(new FlowLayout());//setando o layout para a barra de status
PainelStatus.setBorder(new EtchedBorder());//adicionando borda a barra de status
UsuarioLogado.setText("USUARIO");//setando texto do componente
HoraAtual.setText("HORA");//setando texto do componente
PainelStatus.add(UsuarioLogado);//adicionando componente
PainelStatus.add(HoraAtual);//adicionando componente
PainelDesktop.setLayout(new BorderLayout());
PainelDesktop.setPreferredSize(new Dimension(DeskLargura,DeskAltura));
Desk.setPreferredSize(new Dimension(DeskLargura,DeskAltura));
PainelDireita.setPreferredSize(new Dimension(PainelLateralLargura,PainelLateralAltura));
PainelDireita.setBorder(new LineBorder(new Color(20)));//setando borda para painel da direita
PainelEsquerda.setPreferredSize(new Dimension(PainelLateralLargura,PainelLateralAltura));
PainelEsquerda.setBorder(new LineBorder(new Color(5)));//setando borda para painel da esquerda
PainelDescricao.setPreferredSize(new Dimension(DeskLargura,60));
PainelDescricao.setBorder(new LineBorder(new Color(10)));
PainelDesktop.add(Desk,BorderLayout.CENTER);//adicionando DesktopPane ao Painel
PainelDesktop.add(PainelDescricao,BorderLayout.SOUTH);
getContentPane().add(PainelDesktop,BorderLayout.CENTER);
getContentPane().add(PainelStatus,BorderLayout.SOUTH);
getContentPane().add(PainelEsquerda,BorderLayout.WEST);
getContentPane().add(PainelDireita,BorderLayout.EAST);
MenuUsuario.setText("USUARIO");
MenuCliente.setText("CLIENTE");
MenuProduto.setText("PRODUTO");
menu.add(MenuUsuario);
menu.add(MenuCliente);
menu.add(MenuProduto);
setJMenuBar(menu);
pack();
}
public void formWindowClosing(WindowEvent evt){
}
public static void main(String[] args){
new ControlePrincipal().setVisible(true);
}
private static final int FrameAltura = 715;//mudar para 800 quando concluir
private static final int FrameLargura = 1025;
private static final int DeskAltura = 550;
private static final int DeskLargura = 855;
private static final int EsquerdaLargura = 100;
private static final int EsquerdaAltura = 200;
private static final int PainelLateralLargura=80;
private static final int PainelLateralAltura=200;
private String TextoAjuda;
private JMenuBar menu;
private JMenu MenuUsuario;
private JMenu MenuProduto;
private JMenu MenuCliente;
private JPanel PainelDesktop;
private JPanel PainelStatus;
private JPanel PainelEsquerda;
private JPanel PainelDireita;
private Descritor PainelDescricao;
private JLabel UsuarioLogado;
private JLabel HoraAtual;
private JDesktopPane Desk;
}