segunda-feira, 28 de abril de 2008

Aplicação MDI Simples - 3.a Parte

1.a e 2.a Parte - Aqui

Seguiremos agora com a 3.a Parte do codigo que demonstra a codificação da janela Principal, representada pela classe LojaMDI e é responsavel pela chamada das demais janelas.

Tentei deixar o maximo possivel de comentario sobre os componentes, qualquer duvida deixe um post para que possamos discutir assim que possivel.

Segue codificação :



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;

public class LojaMDI extends JFrame implements ActionListener {

static JDesktopPane desktopPane;

public LojaMDI(){
super("Loja MDI");
setSize(800,600);

// define menu
setJMenuBar(createMenuBar());

desktopPane = new JDesktopPane();
desktopPane.setLayout(null);
desktopPane.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
setContentPane(desktopPane);
}

// metodo responsavel pela criação do menu
protected JMenuBar createMenuBar(){
JMenuBar menuBar = new JMenuBar();

// criação menu Cadastro
JMenu menu = new JMenu("Cadastro");
menu.setMnemonic(KeyEvent.VK_C);
menuBar.add(menu);

// criação de itens do menu Cadastro - Clientes
JMenuItem menuItem = new JMenuItem("Clientes");
menuItem.setMnemonic(KeyEvent.VK_L);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
ActionEvent.ALT_MASK));
menuItem.setActionCommand("cadCli");
menuItem.addActionListener(this);
menu.add(menuItem);

// criação de itens do menu Cadastro - Produtos
menuItem = new JMenuItem("Produtos");
menuItem.setMnemonic(KeyEvent.VK_P);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
ActionEvent.ALT_MASK));
menuItem.setActionCommand("cadProd");
menuItem.addActionListener(this);
menu.add(menuItem);

// criação de itens do menu Cadastro - Venda
menuItem = new JMenuItem("Venda");
menuItem.setMnemonic(KeyEvent.VK_V);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
ActionEvent.ALT_MASK));
menuItem.setActionCommand("cadVenda");
menuItem.addActionListener(this);
menu.add(menuItem);

// criação menu Sistema
menu = new JMenu("Sistema");
menu.setMnemonic(KeyEvent.VK_S);
menuBar.add(menu);

// criação de itens do menu Sistema - Ajuda
menuItem = new JMenuItem("Ajuda");
menuItem.setMnemonic(KeyEvent.VK_A);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
ActionEvent.ALT_MASK));
menuItem.setActionCommand("ajuda");
menuItem.addActionListener(this);
menu.add(menuItem);

// criação de separador no menu Sistema
menu.addSeparator();

// criação de itens do menu Sistema - Sair
menuItem = new JMenuItem("Sair");
menuItem.setMnemonic(KeyEvent.VK_R);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
ActionEvent.ALT_MASK));
menuItem.setActionCommand("sair");
menuItem.addActionListener(this);
menu.add(menuItem);

return menuBar;
}

// metodo responsavel por montagem de componentes do frame principal
private static void createAndShowGui(){
// altera skin das janelas e dialogs
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);

LojaMDI frmLoja = new LojaMDI();

// define pções de inicialização da janela principal.
frmLoja.setExtendedState(JFrame.MAXIMIZED_BOTH);
frmLoja.setLayout(null);
frmLoja.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmLoja.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if("cadCli".equals(e.getActionCommand())){
CadClientes frmCadCli = new CadClientes();
desktopPane.add(frmCadCli);
// opção para definir que o ultimo internalframe abersto
// seja o que ficará com foco.
try {
frmCadCli.setSelected(true);
} catch (java.beans.PropertyVetoException error) {
error.printStackTrace();
}
}

if("sair".equals(e.getActionCommand())){
// customização de optionpane para que altere os valores de en_US
// para pt_BR, pode ser adicionado mais customizações, como icone
// enre outros, para isto consultar referência no fim do post.
Object [] simNao = { "Sim", "Não" };

int opcao = JOptionPane.showOptionDialog(null, "Deseja sair do sistema ?",
"Loja MDI", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
simNao, simNao[0]);
if(opcao == JOptionPane.YES_OPTION){
System.exit(0);
}
}
}

public static void main(String args[]){
// thread de exibiçao da gui
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}



:: Referência

- Pagina de componentes Swing

Nenhum comentário: