Boa tarde galera do GUJ, estou precisando de uma ajuda, estou desenvolvendo uma aplicação em swing e me deparei com um problema.
Tenho duas UI chamadas (JFRAME)EquipamentosUI e outra (JDIALOG)Login UI.
Estas duas User Interface são chamadas através de duas classes controller.
O sistema primeiro o controller Equipamentos que chama a UI Equipamentos e depois chama a controller Login que chama LoginUI, o problema acontece quando seto o Modal da LoginUi para true, ele desabilita os botões, porque acontece isso, alguem poderia me dar uma luz?
Pode ser até uma besteira minha, mas como estou estudando ainda, agradeço qualquer ajuda.
Seguem as classes
EQUIPAMENTOS UIpackage br.com.equipamentos.ui;
import java.awt.event.ActionListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import br.com.equipamentos.controller.LoginController;
public class EquipamentosUI extends JFrame {
private static final long serialVersionUID = 1L;
public JDesktopPane desktop;
public JMenuBar barraMenu;
public JMenu menuMaquina, menuManutencao, menuUsuario, menuAjuda;
public JMenuItem miUsuCadastro, miUsuEdita, miUsuExclui, miSair;
public EquipamentosUI() {
barraMenu = criarBarraMenu();
desktop = new JDesktopPane();
inicializar();
}
private void inicializar() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(MAXIMIZED_BOTH);
this.setTitle("Controle de Manutenção e Equipamentos Gráficos");
this.setContentPane(desktop);
this.setJMenuBar(barraMenu);
this.setVisible(true);
}
private JMenuBar criarBarraMenu() {
barraMenu = new JMenuBar();
menuMaquina = new JMenu("Equipamentos");
menuManutencao = new JMenu("Fornecedores e Mecânicos");
menuUsuario = new JMenu("Usuários");
menuAjuda = new JMenu("Ajuda");
miUsuCadastro = new JMenuItem("Cadastro");
miUsuEdita = new JMenuItem("Edita");
miUsuExclui = new JMenuItem("Exclui");
menuUsuario.add(miUsuCadastro);
menuUsuario.add(miUsuEdita);
menuUsuario.add(miUsuExclui);
barraMenu.add(menuMaquina);
barraMenu.add(menuManutencao);
barraMenu.add(menuUsuario);
barraMenu.add(menuAjuda);
barraMenu.add(miSair = new JMenuItem("Sair"));
return barraMenu;
}
public void adicionarOuvinte(ActionListener ouvinte) {
this.miSair.addActionListener(ouvinte);
this.miUsuCadastro.addActionListener(ouvinte);
}
public JFrame getJframe(){
return this;
}
}
package br.com.equipamentos.ui;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import br.com.equipamentos.dao.UsuarioDAO;
public class LoginUi extends JDialog {
private static final long serialVersionUID = 1L;
public JPanel painelLogin;
public JComboBox cbUsuarios;
public JPasswordField pfSenha;
public JButton btnOk, btnSair;
public LoginUi() {
painelLogin = new JPanel(new GridLayout(3, 2, 5, 5));
painelLogin.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
cbUsuarios = new JComboBox(listaUsuarios());
painelLogin.add(new JLabel("Usuario: "));
painelLogin.add(cbUsuarios);
painelLogin.add(new JLabel("Senha: "));
painelLogin.add(pfSenha = new JPasswordField(10));
painelLogin.add(btnOk = new JButton("Ok"));
painelLogin.add(btnSair = new JButton("Sair"));
this.run();
}
private void run() {
int largura = 300;
int altura = 200;
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int posX = (dim.width / 2) - (largura / 2);
int posY = (dim.height / 2) - (altura / 2);
this.setTitle("Login");
this.setSize(300, 200);
this.setLocation(posX,posY);
this.add(painelLogin);
this.pack();
this.setModal(true);
this.setVisible(true);
}
public String[] listaUsuarios() {
return new UsuarioDAO().listaNomes();
}
public void adicionarOuvinte(ActionListener ouvinte) {
this.btnOk.addActionListener(ouvinte);
this.btnSair.addActionListener(ouvinte);
}
}
package br.com.equipamentos.controller;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import br.com.equipamentos.ui.EquipamentosUI;
public class EquipamentosController {
EquipamentosUI equipUi = null;
LoginController login = null;
public void run() {
equipUi = new EquipamentosUI();
equipUi.adicionarOuvinte(new OuvinteEquipamentos());
login = new LoginController();
}
class OuvinteEquipamentos implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Object fonte = e.getSource();
if (e.getSource() instanceof JMenuItem) {
if (fonte == equipUi.miSair) {
int opcao = JOptionPane.showConfirmDialog(null,
"Deseja sair do sistema", "Sair do sistema",
JOptionPane.YES_NO_OPTION);
if (opcao == 0)
System.out.println("Valor=" + opcao);
System.exit(0);
} else if (fonte == equipUi.miUsuCadastro) {
login = new LoginController();
}
}
}
}
}
package br.com.equipamentos.controller;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import br.com.equipamentos.ui.LoginUi;
public class LoginController {
LoginUi loginUi = null;
public LoginController() {
loginUi = new LoginUi();
loginUi.adicionarOuvinte(new OuvinteLogin());
}
class OuvinteLogin implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand() == "Ok") {
loginUi.dispose();
} else {
System.exit(0);
}
}
}
}