Configurações JTextField padrão para todos forms

4 respostas
L

Boa tarde a todos,
Minha duvida é a seguinte:

Quero fazer um método nesse formulário a seguir, onde criará um padrão para todos os formularios de cadastro.

Como tenho botões iguais nos forms, posso aproveitar alguns métodos como habilitar(), desabilitar(),habilitarB(),clear() e outros futuros.
Agora você se pergunta, de que forma? Minha ideia está no método jTFConfig() (jTextFields Config), onde envés de digitar jTextFieldCod e o que for em todos os métodos de todos forms, crio esse método de configuração, onde eu como programador apenas vou lá e falo que jTextFieldCod é meu jTextField0 do código e copio e colo esse código padrão em todos os forms, fazendo pequenos ajustes de quem é o que.

import conection.DataBaseConfig;
import home.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class fornecedores extends javax.swing.JInternalFrame {

    DataBaseConfig dbconfig = new DataBaseConfig();
    private TelaPrincipal frmTelaPrincipal;
    String userDB = dbconfig.getUsername();
    String passDB = dbconfig.getPassword();
    String url = dbconfig.getUrl();
    Connection conn;
    Statement stmtInt;
    ResultSet rs;
    short Cod;
    String Nome;
    String Site;
    long CNPJ;
    String Email;
    int CEP;
    String End;
    int Num;
    String Compl;
    String Bairro;
    String Cidade;
    long Fone1;
    long Fone2;
    long Fax;
    String Obs;
   
    public fornecedores(TelaPrincipal frmTelaPrincipal) {
        initComponents();
        jButtonSalvar.setEnabled(false);
        jButtonCancelar.setEnabled(false);
        this.frmTelaPrincipal = frmTelaPrincipal;
    }

    @SuppressWarnings("unchecked")
    private void initComponents(){
.
.
.
}

    private void jButtonSairActionPerformed(java.awt.event.ActionEvent evt) {                                            
        if (JOptionPane.showConfirmDialog(this, "Deseja sair?", "Confirme a saída", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
            habilitarB();
            desabilitar();
            this.setVisible(false);
            frmTelaPrincipal.ativaMenuItemFornec();
        }
    }                                           

    private void jButtonNovoActionPerformed(java.awt.event.ActionEvent evt) {                                            
        habilitarB();
        jButtonNovo.setEnabled(false);
        jButtonInicio.setEnabled(false);
        jButtonAnterior.setEnabled(false);
        jButtonProximo.setEnabled(false);
        jButtonUltimo.setEnabled(false);
        jButtonLocalizar.setEnabled(false);
        jButtonExcluir.setEnabled(false);
        jButtonAlterar.setEnabled(false);
        habilitar();
        clear();
    }                                           

    private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                                
        clear();
        desabilitar();
        habilitarB();
    }                                               

    private void jButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                              
        getAll();
        connect();
        try {
            stmtInt.execute("INSERT INTO FORNECEDORES (COD_FORNECEDOR,NOME,SITE,CNPJ,EMAIL,CEP,ENDEREÇO,NUM,COMPL,BAIRRO,CIDADE,FONE1,FONE2,FAX,OBS) "
                    + "VALUES (" + Cod + ",'" + Nome + "','" + Site + "'," + CNPJ + ",'" + Email + "'," + CEP + ",'" + End + "'," + Num + ",'" + Compl + "','" + Bairro + "','" + Cidade + "'," + Fone1 + "," + Fone2 + "," + Fax + ",'" + Obs + "')");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
        disconnect();
        //clear();
        desabilitar();
        habilitarB();
    }                                             
//##############################jTextFields Config###################################

    private void jTFConfig() {
        
        JFormattedTextField jTextField0 = jTextFieldCod;
        JFormattedTextField jTextField1 = jTextFieldCod;
        JFormattedTextField jTextField2 = jTextFieldCod;
        JFormattedTextField jTextField3 = jTextFieldCod;
        JFormattedTextField jTextField4 = jTextFieldCod;
        JFormattedTextField jTextField5 = jTextFieldCod;
        JFormattedTextField jTextField6 = jTextFieldCod;
        JFormattedTextField jTextField7 = jTextFieldCod;
        JFormattedTextField jTextField8 = jTextFieldCod;
        JFormattedTextField jTextField9 = jTextFieldCod;
        JFormattedTextField jTextField10 = jTextFieldCod;
        JFormattedTextField jTextField11 = jTextFieldCod;
        JFormattedTextField jTextField12 = jTextFieldCod;
        JFormattedTextField jTextField13 = jTextFieldCod;
        JFormattedTextField jTextField14 = jTextFieldCod;
        /*
        JFormattedTextField jTextField n =jTextField n;
        .
        .
        .
         */
    }
//###################################################################################    

    private void habilitar() {
        jTextFieldCod.setEditable(true);
        jTextFieldEmail.setEditable(true);
        jTextFieldSite.setEditable(true);
        jTextFieldCNPJ.setEditable(true);
        jTextFieldEmail.setEditable(true);
        jTextFieldCEP.setEditable(true);
        jTextFieldEnd.setEditable(true);
        jTextFieldNum.setEditable(true);
        jTextFieldCompl.setEditable(true);
        jTextFieldBairro.setEditable(true);
        jTextFieldCidade.setEditable(true);
        jTextFieldFone1.setEditable(true);
        jTextFieldFone2.setEditable(true);
        jTextFieldFax.setEditable(true);
        jTextAreaObs.setEditable(true);
        jTextFieldCod.requestFocusInWindow();
    }

    private void desabilitar() {
        jTextFieldCod.setEditable(false);
        jTextFieldEmail.setEditable(false);
        jTextFieldSite.setEditable(false);
        jTextFieldCNPJ.setEditable(false);
        jTextFieldEmail.setEditable(false);
        jTextFieldCEP.setEditable(false);
        jTextFieldEnd.setEditable(false);
        jTextFieldNum.setEditable(false);
        jTextFieldCompl.setEditable(false);
        jTextFieldBairro.setEditable(false);
        jTextFieldCidade.setEditable(false);
        jTextFieldFone1.setEditable(false);
        jTextFieldFone2.setEditable(false);
        jTextFieldFax.setEditable(false);
        jTextAreaObs.setEditable(false);
    }

    private void habilitarB() {
        jButtonInicio.setEnabled(true);
        jButtonAnterior.setEnabled(true);
        jButtonProximo.setEnabled(true);
        jButtonUltimo.setEnabled(true);
        jButtonLocalizar.setEnabled(true);
        jButtonNovo.setEnabled(true);
        jButtonSalvar.setEnabled(true);
        jButtonCancelar.setEnabled(true);
        jButtonExcluir.setEnabled(true);
        jButtonAlterar.setEnabled(true);
        jButtonSair.setEnabled(true);
    }

    private void clear() {
        jTextFieldCod.setText("");
        jTextFieldEmail.setText("");
        jTextFieldSite.setText("");
        jTextFieldCNPJ.setText("");
        jTextFieldEmail.setText("");
        jTextFieldCEP.setText("");
        jTextFieldEnd.setText("");
        jTextFieldNum.setText("");
        jTextFieldCompl.setText("");
        jTextFieldBairro.setText("");
        jTextFieldCidade.setText("");
        jTextFieldFone1.setText("");
        jTextFieldFone2.setText("");
        jTextFieldFax.setText("");
        jTextAreaObs.setText("");
    }

    private void getAll() {
        String SCod = jTextFieldCod.getText();
        SCod = SCod.replace(".", "");
        Cod = Short.parseShort(SCod);


        Nome = jTextFieldEmail.getText();
        Site = jTextFieldSite.getText();

        String SCNPJ = jTextFieldCNPJ.getText();
        SCNPJ = SCNPJ.replace(".", "");
        SCNPJ = SCNPJ.replace("/", "");
        SCNPJ = SCNPJ.replace("-", "");
        CNPJ = Long.parseLong(SCNPJ);

        Email = jTextFieldEmail.getText();

        String SCEP = jTextFieldCEP.getText();
        SCEP = SCEP.replace("-", "");
        CEP = Integer.parseInt(SCEP);

        End = jTextFieldEnd.getText();
        Num = Integer.parseInt(jTextFieldNum.getText());
        Compl = jTextFieldCompl.getText();
        Bairro = jTextFieldBairro.getText();
        Cidade = jTextFieldCidade.getText();

        String SFone1 = jTextFieldFone1.getText();
        SFone1 = SFone1.replace("(", "");
        SFone1 = SFone1.replace(")", "");
        SFone1 = SFone1.replace("-", "");
        Fone1 = Long.parseLong(SFone1);


        String SFone2 = jTextFieldFone2.getText();
        SFone2 = SFone2.replace("(", "");
        SFone2 = SFone2.replace(")", "");
        SFone2 = SFone2.replace("-", "");
        Fone2 = Long.parseLong(SFone2);

        String SFax = jTextFieldFax.getText();
        SFax = SFax.replace("(", "");
        SFax = SFax.replace(")", "");
        SFax = SFax.replace("-", "");
        Fax = Long.parseLong(SFax);

        Obs = jTextAreaObs.getText();
    }

    private void connect() {
        try {
            conn = DriverManager.getConnection(url, userDB, passDB);
            stmtInt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            rs = stmtInt.executeQuery("SELECT * FROM FORNECEDORES");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }

    private void disconnect() {
        try {
            rs.close();
            stmtInt.close();
            conn.close();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }
    /*
    jTextFieldCod
    jTextFieldNome
    jTextFieldSite
    jTextFieldCNPJ
    jTextFieldEmail
    jTextFieldCEP
    jTextFieldEnd
    jTextFieldNum
    jTextFieldCompl
    jTextFieldBairro
    jTextFieldCidade
    jTextFieldFone1
    jTextFieldFone2
    jTextFieldFax
    jTextAreaObs
     *
     *
    jButtonInicio
    jButtonAnterior
    jButtonProximo
    jButtonUltimo
    jButtonLocalizar
    jButtonNovo
    jButtonSalvar
    jButtonCancelar
    jButtonExcluir
    jButtonAlterar
    jButtonSair
     */
    // Variables declaration - do not modify
    private javax.swing.JButton jButtonAlterar;
    private javax.swing.JButton jButtonAnterior;
    private javax.swing.JButton jButtonCancelar;
    private javax.swing.JButton jButtonExcluir;
    private javax.swing.JButton jButtonInicio;
    private javax.swing.JButton jButtonLocalizar;
    private javax.swing.JButton jButtonNovo;
    private javax.swing.JButton jButtonProximo;
    private javax.swing.JButton jButtonSair;
    private javax.swing.JButton jButtonSalvar;
    private javax.swing.JButton jButtonUltimo;
    private javax.swing.JLabel jLabelBairro;
    private javax.swing.JLabel jLabelCEP;
    private javax.swing.JLabel jLabelCNPJ;
    private javax.swing.JLabel jLabelCidade;
    private javax.swing.JLabel jLabelCodigo;
    private javax.swing.JLabel jLabelComplemento;
    private javax.swing.JLabel jLabelEmail;
    private javax.swing.JLabel jLabelEndereco;
    private javax.swing.JLabel jLabelFax;
    private javax.swing.JLabel jLabelNome;
    private javax.swing.JLabel jLabelNum;
    private javax.swing.JLabel jLabelObs;
    private javax.swing.JLabel jLabelSite;
    private javax.swing.JLabel jLabelTelefone;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanelDados;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextAreaObs;
    private javax.swing.JFormattedTextField jTextFieldBairro;
    private javax.swing.JFormattedTextField jTextFieldCEP;
    private javax.swing.JFormattedTextField jTextFieldCNPJ;
    private javax.swing.JFormattedTextField jTextFieldCidade;
    private javax.swing.JFormattedTextField jTextFieldCod;
    private javax.swing.JFormattedTextField jTextFieldCompl;
    private javax.swing.JFormattedTextField jTextFieldEmail;
    private javax.swing.JFormattedTextField jTextFieldEnd;
    private javax.swing.JFormattedTextField jTextFieldFax;
    private javax.swing.JFormattedTextField jTextFieldFone1;
    private javax.swing.JFormattedTextField jTextFieldFone2;
    private javax.swing.JFormattedTextField jTextFieldNome;
    private javax.swing.JFormattedTextField jTextFieldNum;
    private javax.swing.JFormattedTextField jTextFieldSite;
    // End of variables declaration
}

Grato pela atencão

Leandro D. Mussio

4 Respostas

josue_carrecon

Se voce tah usando o Netbeans eh facil eh soh adciona-lo ao seu modelo. com os seguintes passos: Ferramentas -> Modelos -> ai voce tem a opção de incluir o seu formulario modelo em uma das opções do gerenciador de modelos, por exemplo pra coloca-lo em Formulários GUI Swing eh soh adicionar o bixin e pronto, quando voce quiser adicionar o seu formulario eh soh ir na guia de formularios do Swing.

L

Humm… Recurso interessante, mas para eu implementa-lo como um modelo, teria que criar algo meio que padrão pra qualquer tipo de form que eu fosse criar. Para isso apenas deixo como padrão todos os jTextFields e Buttons só crio um método que falará que meu jTextField0 do código é equivalente ao jTextFieldCod do meu form.
Ex:

//##############################jTextFields Config###################################

    private void jTFConfig() {
        
        JFormattedTextField jTextField0 = jTextFieldCod;
        JFormattedTextField jTextField1 = jTextFieldNome;
        JFormattedTextField jTextField2 = jTextFieldNumero;
        JFormattedTextField jTextField3 = jTextFieldCasa;
        JFormattedTextField jTextField4 = jTextFieldAlgo;
        JFormattedTextField jTextField5 = jTextFieldCarro;
        JFormattedTextField jTextField6 = jTextFieldCarteira;
        JFormattedTextField jTextField7 = jTextFieldEtc..;
        JFormattedTextField jTextField8 = jTextFieldEtc..;
        JFormattedTextField jTextField9 = jTextFieldEtc..;
        JFormattedTextField jTextField10 = jTextFieldEtc..;
        JFormattedTextField jTextField11 = jTextFieldEtc..;
        JFormattedTextField jTextField12 = jTextFieldCod;
        JFormattedTextField jTextField13 = jTextFieldCod;
        JFormattedTextField jTextField14 = jTextFieldCod;
        /*
        JFormattedTextField jTextField n =jTextField n;
        .
        .
        .
         */
    }
//###################################################################################

O problema é que não sei como criar uma variavel do tipo JFormattedTextField ou JTextField para igualar a minha jTextField real que esta no form.

josue_carrecon

e soh voce criar o seu

private void jTFConfig() {

do jeito e com as implementações que voce quiser que seja padrao.

L

O problema é que não sei como, pois não funciona nesse esquema que mostrei. Queria falar que meu jTextFieldX fosse equivalente a minha variavel X, onde essa variavel X é a que eu usaria no código todo do form, logo meu form entenderia que minha variavel X é igual ao meu jTextFieldX, e é justamente isso que não tenho a minima idéia de como fazer.

Criado 18 de novembro de 2010
Ultima resposta 19 de nov. de 2010
Respostas 4
Participantes 2