/*
* 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 JFrameSample 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 main é 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) {
}
}