/* * JFrameSample.java * * Criado em 11/08/2009 */package samples;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.SwingUtilities;/** * A classe <code>JFrameSample</code> mostra um exemplo simples de janela * gráfica em Java com dois botões. * * @author João Henrique Berg dos Santos * */public class JFrameSample extends JFrame implements ActionListener, WindowListener { /** * O serialVersionUID é usado na serialização de objetos desta classe. */ private static final long serialVersionUID = 7654838480114848014L; private JPanel panel; private JButton buttonClose; public JFrameSample() { initComponents(); } private void initComponents() { // Use isto para manipular o fechamento da janela setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(this); // Adiciona o tratamento de eventos da janela panel = new JPanel(); panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); buttonClose = new JButton("Fechar"); buttonClose.addActionListener(this); panel.add(buttonClose); getContentPane().add(panel, BorderLayout.SOUTH); pack(); setSize(new Dimension(200, 150)); setVisible(true); } private void closeApp() { if (JOptionPane.showConfirmDialog(null, "Deseja realmente sair?", "Encerrar aplicativo", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { dispose(); // Fecha a janela e libera a memória } } /** * O método <code>main</code> é o ponto de entrada de um aplicativo Java. * * @param args os argumentos da linha de comando */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new JFrameSample(); } }); } @Override public void actionPerformed(ActionEvent e) { closeApp(); } @Override public void windowActivated(WindowEvent e) { } @Override public void windowClosed(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { closeApp(); } @Override public void windowDeactivated(WindowEvent e) { } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { } @Override public void windowOpened(WindowEvent e) { }}