Boa tarde galera!!
Minha duvida é o seguinte, tenho uma classe de formulário, chamada FormularioPadrão, basicamente ela será igual para todos o formulários do sistema, mudando apenas alguns JTextFields e JLabel, de um formulário para o outro.
Formulário Padrão:
Código do Formulário Padrão:
public abstract class FormularioPadrao extends JInternalFrame {
private static final long serialVersionUID = -5947675427044523401L;
abstract public void inicializarComponentes() throws ParseException;
private JButton btnNovo = new JButton("Novo");
private JButton btnAlterar = new JButton("Alterar");
private JButton btnExluir = new JButton("Excluir");
private JButton btnSalvar = new JButton("Salvar");
private JButton btnCancelar = new JButton("Cancelar");
private JButton btnFechar = new JButton("Fechar");
JPanel painelBotoes = new JPanel();
public JPanel painelFormulario = new JPanel();
public JPanel painelConsulta = new JPanel();
private JTextField txtID;
JLabel lblID = new JLabel("ID:");
private final JLabel lblBuscarCliente = new JLabel("Buscar:");
private final JTextField textField = new JTextField();
public FormularioPadrao() throws ParseException {
inicializarComponentes();
textField.setBounds(66, 28, 802, 25);
textField.setColumns(10);
setClosable(true);
setBounds(100, 100, 906, 689);
getContentPane().setLayout(null);
painelBotoes.setBounds(10, 11, 870, 36);
getContentPane().add(painelBotoes);
painelBotoes.setLayout(null);
btnNovo.setIcon(
new ImageIcon(FormularioPadrao.class.getResource("/br/bom/fjsistemas/imagens/NovoCliente.png")));
btnNovo.setBounds(0, 11, 116, 23);
btnNovo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
habilitaBotoes(false);
}
});
painelBotoes.add(btnNovo);
btnAlterar.setIcon(new ImageIcon(FormularioPadrao.class.getResource("/br/bom/fjsistemas/imagens/Alterar.png")));
btnAlterar.setBounds(126, 11, 116, 23);
btnAlterar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
habilitaBotoes(false);
}
});
painelBotoes.add(btnAlterar);
btnExluir.setIcon(new ImageIcon(FormularioPadrao.class.getResource("/br/bom/fjsistemas/imagens/Excluir.png")));
btnExluir.setBounds(252, 11, 116, 23);
painelBotoes.add(btnExluir);
btnSalvar.setIcon(new ImageIcon(FormularioPadrao.class.getResource("/br/bom/fjsistemas/imagens/Salvar.png")));
btnSalvar.setBounds(378, 11, 116, 23);
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
habilitaBotoes(true);
}
});
painelBotoes.add(btnSalvar);
btnCancelar.setIcon(new ImageIcon(FormularioPadrao.class.getResource("/br/bom/fjsistemas/imagens/cancel.png")));
btnCancelar.setBounds(504, 11, 116, 23);
btnCancelar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
habilitaBotoes(true);
}
});
painelBotoes.add(btnCancelar);
btnFechar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
btnFechar.setIcon(new ImageIcon(FormularioPadrao.class.getResource("/br/bom/fjsistemas/imagens/Fechar.png")));
btnFechar.setBounds(630, 11, 116, 23);
painelBotoes.add(btnFechar);
painelFormulario.setBorder(new TitledBorder(
new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)),
"", TitledBorder.CENTER, TitledBorder.TOP, null, new Color(0, 0, 0)));
painelFormulario.setBounds(10, 54, 870, 166);
getContentPane().add(painelFormulario);
painelFormulario.setLayout(null);
lblID.setBounds(10, 21, 46, 25);
painelFormulario.add(lblID);
txtID = new JTextField();
txtID.setBounds(55, 18, 58, 25);
txtID.setEnabled(false);
painelFormulario.add(txtID);
txtID.setColumns(10);
painelConsulta.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
painelConsulta.setBounds(10, 231, 870, 417);
getContentPane().add(painelConsulta);
painelConsulta.setLayout(null);
lblBuscarCliente.setBounds(10, 31, 46, 14);
painelConsulta.add(lblBuscarCliente);
painelConsulta.add(textField);
}
public void habilitaBotoes(boolean estado) {
btnNovo.setEnabled(estado);
btnAlterar.setEnabled(estado);
btnExluir.setEnabled(estado);
btnSalvar.setEnabled(!estado);
btnCancelar.setEnabled(!estado);
}
}
Formulario Cadatro de Cliente(que herda Formulario Padrao)
Código Classe Cadastro Cliente:
public class CadastroDeCliente extends FormularioPadrao {
private static final long serialVersionUID = 2998773983648517050L;
JLabel jlNome;
JLabel jlSexo;
JLabel jlCPF;
JLabel jlRG;
JLabel jlEndereco;
JLabel jlBairro;
JLabel jlNumero;
JLabel jlCidade;
JLabel jlEstado;
JLabel jlTelefone;
JLabel jlCelular;
JComboBox<String> jcSexo;
JComboBox<String> jcEstado;
JFormattedTextField jftCPF;
JFormattedTextField jftRG;
JFormattedTextField jftTelefone;
JFormattedTextField jftCelular;
JTextField txtNome;
JTextField txtEndereco;
JTextField txtBairro;
JTextField txtNumero;
JTextField txtCidade;
public CadastroDeCliente() throws ParseException {
setTitle("Cadastro de Clientes");
}
@Override
public void inicializarComponentes() throws ParseException {
jlNome = new JLabel("Nome:");
jlNome.setBounds(9, 50, 50, 25);
painelFormulario.add(jlNome);
txtNome = new JTextField("");
txtNome.setBounds(55, 50, 300, 25);
painelFormulario.add(txtNome);
jlSexo = new JLabel("Sexo:");
jlSexo.setBounds(370, 50, 50, 25);
painelFormulario.add(jlSexo);
jcSexo = new JComboBox<String>();
jcSexo.setBounds(410, 50, 100, 25);
jcSexo.addItem("Selecione");
jcSexo.addItem("Masculino");
jcSexo.addItem("Feminino");
painelFormulario.add(jcSexo);
jlCPF = new JLabel("CPF:");
jlCPF.setBounds(525, 50, 50, 25);
painelFormulario.add(jlCPF);
jftCPF = new JFormattedTextField(new MaskFormatter("###.###.###-##"));
jftCPF.setBounds(560, 50, 100, 25);
painelFormulario.add(jftCPF);
jlRG = new JLabel("RG:");
jlRG.setBounds(675, 50, 100, 25);
painelFormulario.add(jlRG);
jftRG = new JFormattedTextField(new MaskFormatter("##.###.###-#"));
jftRG.setBounds(705, 50, 100, 25);
painelFormulario.add(jftRG);
jlEndereco = new JLabel("Endereço:");
jlEndereco.setBounds(10, 85, 57, 25);
painelFormulario.add(jlEndereco);
txtEndereco = new JTextField();
txtEndereco.setBounds(75, 85, 279, 25);
painelFormulario.add(txtEndereco);
jlNumero = new JLabel("Nº:");
jlNumero.setBounds(370, 85, 50, 25);
painelFormulario.add(jlNumero);
txtNumero = new JTextField();
txtNumero.setBounds(394, 85, 60, 25);
painelFormulario.add(txtNumero);
jlBairro = new JLabel("Bairro:");
jlBairro.setBounds(465, 85, 250, 25);
painelFormulario.add(jlBairro);
txtBairro = new JTextField();
txtBairro.setBounds(510, 85, 295, 25);
painelFormulario.add(txtBairro);
jlCidade = new JLabel("Cidade:");
jlCidade.setBounds(10, 120, 150, 25);
painelFormulario.add(jlCidade);
txtCidade = new JTextField();
txtCidade.setBounds(60, 120, 180, 25);
painelFormulario.add(txtCidade);
jlEstado = new JLabel("Estado:");
jlEstado.setBounds(250, 120, 150, 25);
painelFormulario.add(jlEstado);
jcEstado = new JComboBox<String>();
jcEstado.setBounds(300, 120, 160, 25);
jcEstado.addItem("Selecione");
jcEstado.addItem("Acre (AC)");
jcEstado.addItem("Alagoas (AL)");
jcEstado.addItem("Amapá (AP)");
jcEstado.addItem("Amazonas (AM)");
jcEstado.addItem("Bahia (BA)");
jcEstado.addItem("Ceará (CE)");
jcEstado.addItem("Distrito Federal (DF)");
jcEstado.addItem("Espírito Santo (ES)");
jcEstado.addItem("Goiás (GO)");
jcEstado.addItem("Maranhão (MA)");
jcEstado.addItem("Mato Grosso (MT)");
jcEstado.addItem("Mato Grosso do Sul (MS)");
jcEstado.addItem("Minas Gerais (MG)");
jcEstado.addItem("Pará (PA)");
jcEstado.addItem("Paraíba (PB)");
jcEstado.addItem("Paraná (PR)");
jcEstado.addItem("Piauí (PI)");
jcEstado.addItem("Rio de Janeiro (RJ)");
jcEstado.addItem("Rio Grande do Norte (RN)");
jcEstado.addItem("Rio Grande do Sul (RS)");
jcEstado.addItem("Rondônia (RO)");
jcEstado.addItem("Roraima (RR)");
jcEstado.addItem("Santa Catarina (SC)");
jcEstado.addItem("São Paulo (SP)");
jcEstado.addItem("Sergipe (SE)");
jcEstado.addItem("Tocantins (TO)");
painelFormulario.add(jcEstado);
jlTelefone = new JLabel("Fone:");
jlTelefone.setBounds(470, 120, 80, 25);
painelFormulario.add(jlTelefone);
jftTelefone = new JFormattedTextField(new MaskFormatter("(##) ####-####"));
jftTelefone.setBounds(510, 120, 105, 25);
painelFormulario.add(jftTelefone);
jlCelular = new JLabel("Celular:");
jlCelular.setBounds(625, 120, 110, 25);
painelFormulario.add(jlCelular);
jftCelular = new JFormattedTextField(new MaskFormatter("(##) #####-####"));
jftCelular.setBounds(680, 120, 126, 25);
painelFormulario.add(jftCelular);
}
}
O que eu quero é, quando o usuario for acessar o formulario cadastro de cliente, ao abrir a tela, todos os campos estejam desabilitados, impossibilitando o usuario de fazer qualquer lançamento de dado…
Esse lançamento de dados só será permitido quando o usuario clicar no botão Novo, tornando todos os campos (menos o ID) editaveis…
Como faço isso neste caso?