Olá… boa noite !.. por favor, em um projeto, tenho uma tela de cadastro, onde os eventos dos botoes, eu trato em uma classe separada, por ex:
em uma classe que chamo CustomerActionListener , nela eu “escuto” os eventos dos botoes e chamo o método de acordo com o botao, por exemplo, botao
cadastrar , na minha classe CustomerActionListener, ouço o actionCommand do botao cadastrar da seguinte forma:
Object source = evt.getSource();
if (evt.getSource() instanceof JButton) {
command = ((JButton) evt.getSource()).getName();
} else if (evt.getSource() instanceof JMenuItem) {
command = ((JMenuItem) evt.getSource()).getName();
}
if (command.equals("mnui_consultar_alimentos")) {
service.getTelaConsulta(form);
}
if (command.equals("bt_cadastroSair")) {
telacadastro.setVisible(false);
}
...e assim vai...........
ele chama o método que esta em uma classe service :
public final void getTelaConsulta(CustomerForm form) {
if (telaconsulta == null) {
telaconsulta = new CustomerTelaConsulta();
form.getDesktopPane().add(telaconsulta);
telaconsulta.setVisible(true);
telaconsulta.SetFont();
} else if (telaconsulta != null) {
telaconsulta = new CustomerTelaConsulta();
form.getDesktopPane().add(telaconsulta);
telaconsulta.getTf_id().grabFocus();
}
}
e assim por diante, acontece que neste tela, tenho botoes para gravar, procurar, sair, consultar registros, que abre outra tela
com o botoes avancar, voltar etc. ficou “porco” meu codigo com tantos if’s para cada botao. e não sei como melhorar esta
classe CustomerActionListener, olhem um trecho abaixo.
if (command.equals("bt_consultaSair")) {
telaconsulta.setVisible(false);
}
if (command.equals("bt_primeiro")) {
registroAtual = 0;
getValores(registroAtual);
}
if (command.equals("bt_seguinte")) {
if (registroAtual != customerList.size() - 1)
getValores(++registroAtual);
}
if (command.equals("bt_anterior")) {
if (registroAtual != 0)
getValores(--registroAtual);
}
if (command.equals("bt_ultimo")) {
registroAtual = customerList.size() - 1;
getValores(registroAtual);
}
gostaria de ouvir a opniao de voces para melhorar este codigo…
li estes artigos aqui no forum… mas nao deu para entender onde aplicar no meu caso…
Obrigado a todos.