Pegar nome do componente JTextField[RESOLVIDO]

34 respostas
J

Amigos tenho 4 jTextField

jTextField1
jTextField2
jTextField3
jTextField4

tenho que validar os dados que foram inseridos neles, quero fazer um metodo que receba o nome do JTextField que
esta sendo validado:

public valida_jTextField(String jTextFieldx) // qualquer um dos jTextField

como eu faço para salvar em uma string o nome do componente jTextField ?

sds

j.silvestre

34 Respostas

I

vc quer validar o conteúdo desse jtextfield? vc pode fazer jTextField1.getText(); vc vai estar pegando o conteúdo do seu text field, pode fazer isso em qualquer um deles

J

igor

Sim é assim que estou fazendo… mas por peculiaridades do projeto, estou fazendo 4 metodos 1 para cada jTextField,
no caso eu quero fazer um metodo e usar if ou switch para validar qualquer um dos jTextField.

sds

j.silvestre

K

brow… acho melhor você mandar o objeto direto, ao invés de mandar só o nome… assim:

public valida_jTextField(JTextField jTextFieldx){
     // código aqui
}

aí chama ele assim:

valida_jTextField(jTextField1);   
valida_jTextField(jTextField2);
// o mesmo pros outros

e para pegar o valor dentro dele use o método getText()

abraço!

J

certo…

mas meu método precisa saber que estou validando o JTextField1 ou o JTextField2… e assim sucessivamente…

sds

j.silvestre

I

Hummmm, da uma olhadinha a documentação do JTextField no site da Oracle, mas eu acho que o método getName(); vai te retornar o label do jTextField, ou seja exatamente o que vc quer, o nome dele;

D

A idéia do kritinus é válida, se você passa o componente, o seu método saberá qual está testando

JTextField jtf = new JTextField();
jtf.setText("Teste");
//actionPerformed
testaTextField(jtf);

//metodo de teste
public boolean testaTextField(JTextField jTextField){
String str = jTextField.getText();
 if(str == null || str.equals("")){
 //logica aqui
}
}

Ah sim, se quer pegar só o nome, jTextField.getName();

V

Tópico movido para o fórum de interface gráfica. Por favor, leia atentamente a descrição dos fóruns antes de postar.

J

Administrador foi mal… hein…

o seguinte ainda estou com problemas

public void valida_campo_ip(JTextField text){

String Nome = text.getText();   // pego o texto correto
System.out.println("vou imprimir");
System.out.println(Nome);     // imprimo o texto correto
String Nome2 = text.getName();// **** aqui da pau ****
System.out.println(Nome2);  //  imprime "null"

}

sds
j.silvestre

P

Você pode passar pro seu método de validação o JLabel associado ao seu JTextField e usar o método getText() dele.

Ou então, você pode criar um método, mais ou menos assim:

/**
     * Método responsável por validar se o usuário digitou texto no campo, do tipo {@link javax.swing.JTextField}, passado através do parâmetro "campoTexto"
     * deste mesmo método e retornar o intrínseco <code>boolean</code> com o valor <strong>true</strong> caso verdadeiro, ou com o valor <strong>false</strong> caso contrário.
     * @param campoTexto O campo do tipo {@link javax.swing.JTextField} a ser validado se contém ou não texto digitado.
     * @param campo Intrínseco <code>int</code> que definirá em qual campo deste sistema do tipo {@link javax.swing.JTextField} será feita a validação documentada na
     *        descrição deste método. Use da seguinte forma:
     *        <ul>
     *        <li>Use o valor 1 (um) para o campo texto, do tipo {@link javax.swing.JTextField}, JTextField1;</li>
     *        <li>Use o valor 2 (dois) para o campo texto, do tipo {@link javax.swing.JTextField}, JTextField2;</li>
     *        <li>Use o valor 3 (tr&ecirc;s) para o campo texto, do tipo {@link javax.swing.JTextField}, JTextField3;</li>
     *        <li>Use o valor 4 (quatro) para o campo texto, do tipo {@link javax.swing.JTextField}, JTextField4; ou</li>
     *        <li>Use qualquer outro valor para mensagem de erro.</li>
     *        </ul>
     * @return O intr&iacute;nseco &lt;code&gt;boolean&lt;/code&gt; com o valor &lt;strong&gt;true&lt;/strong&gt; caso o usu&aacute;rio tenha digitado texto no campo, do tipo {@link javax.swing.JTextField}, passado
     *         atrav&eacute;s do par&acirc;metro &quot;campoTexto&quot; deste mesmo m&eacute;todo, ou com o valor &lt;strong&gt;false&lt;/strong&gt; caso contr&aacute;rio.
     * @see javax.swing.JTextField
     */
    private boolean validaUsuarioDigitouNada(final JTextField campoTexto, final int campo) {
        final String tituloSistema = "Título do sistema";        

        // Recuperando o texto digitado no campo.
        final String textoDigitadoCampo = campoTexto.getText();

        final StringBuilder mensagemErro = new StringBuilder("O campo ");

        // Validando se o usuário não digitou nada.
        if (Util.isBlankOrNull(textoDigitadoCampo)) {
            switch (campo) {
                case 1:
                    mensagemErro.append("JTextField 1");
                    break;
                case 2:
                    mensagemErro.append("JTextField 2");
                    break;
                case 3:
                    mensagemErro.append("JTextField 3");
                    break;
                case 4:
                    mensagemErro.append("JTextField 4");
                    break;
                default:
                    JOptionPane.showMessageDialog(this, "O campo texto passado por parâmetro não existe nesta tela do sistema.", tituloSistema,
                                                  JOptionPane.ERROR_MESSAGE);
                    campoTexto.requestFocus();
                    return false;
            }
            mensagemErro.append(" deve ser preenchido.");
            JOptionPane.showMessageDialog(this, mensagemErro.toString(), tituloSistema, JOptionPane.ERROR_MESSAGE);
            campoTexto.requestFocus();
            return false;
        }
        return true;
    }
K

Como você instancia o seu jTextfield ??

–Edit

vc utiliza um :

jTextField1.setName("jTextfield1");
J

kritiuns

quem instanciou ele foi o Netbeans , estou fazendo a GUI pelo netbeans.

sds

j.silvestre

P

Eu já passo para este método o meu objeto JTextField instanciado. Pré-requisito deste método, digamos assim.

Para efeitos de teste, debug na sua IDE e instancie um JTextField em uma variável qualquer interna ao método. Acho que irá te ajudar a entender se é isso que você precisa ou não.

J

editado…

K

j.silvestre:
kritiuns

quem instanciou ele foi o Netbeans , estou fazendo a GUI pelo netbeans.

sds

j.silvestre

primeiro: aprenda a usar eclipse
segundo: existe uma propriedade no netbeans quando vc clica no componente jtextfield chamado name coloque o nome do seu componente la
e ultimo: estude bastante!

J

kritiuns

primeiro eu não usar o eclipse.
segundo estou estudando…
terceiro qual é a tua mané…

pede pra sair… pede pra sair…

sds

j.silvestre

J

kritiuns

primeiro eu não vou usar o eclipse.

segundo estou estudando.

terceiro qual é atua mané… ???

não aguentou então pede pra sair…

sds

j.silvestre

K

j.silvestre:
kritiuns

primeiro eu não usar o eclipse.
segundo estou estudando…
terceiro qual é a tua mané…

pede pra sair… pede pra sair…

sds

j.silvestre

Ok. espero ter solucionado sua dúvida.

só para não deixar em branco
este fórum é em PT/BR não em tupi guarani

P

kritiuns:
j.silvestre:
kritiuns

quem instanciou ele foi o Netbeans , estou fazendo a GUI pelo netbeans.

sds

j.silvestre

primeiro: aprenda a usar eclipse
segundo: existe uma propriedade no netbeans quando vc clica no componente jtextfield chamado name coloque o nome do seu componente la
e ultimo: estude bastante!

kritiuns,

Esse é o tipo de resposta desnecessária, não quer ajudar, não ajuda, agora esculachar quem é iniciante na profissão acho desrespeito.

j.silvestre,

Quanto à IDE, uso e recomendo o Eclipse, mas o NetBeans pra quem sabe usar atende e bem, mas é aquilo, acredito que você vai achar muito mais gente com capacidade de te ajudar no Eclipse do que no NetBeans.

No mais, ngm domina a linguagem por inteiro, nem os frameworks disponíveis para uso em conjunto com a API, então o estudo é obrigatório e contínuo para todos.

Por fim, evite fomentar essas discussões desnecessárias, eu sei que é complicado, mas não leva à nada.

R

KKKKKKKKKKKKKKKKKKKKKKKKKKKK

tem certas coisas que eu realmente não entendo…

primeiro… o autor do post não consegue nem explicar a dúvida dele direito pro pessoal conseguir ajudar…
segundo… precisa conhecer o botãozinho de edit do fórum… pra não ter que fazer essas besteiras aí no meio do tópico…

e terceiro… você precisa estudar mais sim… ja que nem a base de como montar a interface você entendeu ainda…

só uma sugestão… tente montar uma interface na mão… DEPOIS use as ferramentas que geram tudo pronto…
ou… LEIA o código que é gerado pra você… não é tão complexo assim…

abs

K

pgioseffi:
kritiuns:
j.silvestre:
kritiuns

quem instanciou ele foi o Netbeans , estou fazendo a GUI pelo netbeans.

sds

j.silvestre

primeiro: aprenda a usar eclipse
segundo: existe uma propriedade no netbeans quando vc clica no componente jtextfield chamado name coloque o nome do seu componente la
e ultimo: estude bastante!

kritiuns,

Esse é o tipo de resposta desnecessária, não quer ajudar, não ajuda, agora esculachar quem é iniciante na profissão acho desrespeito.

j.silvestre,

Quanto à IDE, uso e recomendo o Eclipse, mas o NetBeans pra quem sabe usar atende e bem, mas é aquilo, acredito que você vai achar muito mais gente com capacidade de te ajudar no Eclipse do que no NetBeans.

No mais, ngm domina a linguagem por inteiro, nem os frameworks disponíveis para uso em conjunto com a API, então o estudo é obrigatório e contínuo para todos.

Por fim, evite fomentar essas discussões desnecessárias, eu sei que é complicado, mas não leva à nada.

Não sei se vc viu mais é oq eu venho tentando fazer desde o meu primeiro post nesse tópico aqui…
e provavelmente mesmo q eu tenha esculachado eu ajudei o cara…

J

kritiuns

Cara da minha parte vamos deixar prá lá … vc tentou ajudar… depois dengringolou… mas blz…

quanto ao digão neves as mensagens que ele posta pelo menos as que eu vi não ajudaram muito ninguém… veja a mensagem dele nest tópico.

agora veja outra mensagem dele :

" beleza… o enunciado a gente entendeu… mas qual a dúvida? o que você ja fez? gerou algum erro?

e por favor… leia o post do drsmachado

ou simplesmente quando for escrever algum código use as tags code…
"

esse cara ajuda muito.

infelizmente atitudes como essa desestimulam muita gente a participar do fórum. são atitudes intimidatórias…

sds

j.silvestre

R

j.silvestre:
kritiuns

Cara da minha parte vamos deixar prá lá … vc tentou ajudar… depois dengringolou… mas blz…

quanto ao digão neves as mensagens que ele posta pelo menos as que eu vi não ajudaram muito ninguém… veja a mensagem dele nest tópico.

agora veja outra mensagem dele :

" beleza… o enunciado a gente entendeu… mas qual a dúvida? o que você ja fez? gerou algum erro?

e por favor… leia o post do drsmachado

ou simplesmente quando for escrever algum código use as tags code…
"

esse cara ajuda muito.

infelizmente atitudes como essa desestimulam muita gente a participar do fórum. são atitudes intimidatórias…

sds

j.silvestre

opa… vamos la…

eu tenho mais de 70 posts aqui e com certeza você pegou um dos únicos onde eu perdi a paciência para tentar advinhar na minha bola de cristal qual era o problema do cara… ou simplesmente não queria mais resolver outro exercício de faculdade…

quando uma pessoa posta uma dúvida pertinente e eu consigo ajudar… eu sempre ajudo, pode olhar que eu não escondo nada…

agora no seu caso…

você chega aqui e posta sua dúvida… até aí sem problemas.
o pessoal tenta te ajudar… você demonstra problemas pra explicar a sua própria dúvida… não conhece os detalhes do que ta desenvolvendo… até aí também tudo bem…

uma pessoa te pede pra estudar mais e você perde a linha… agora ja não ta nada bem mais…

nesse mundo aqui se você ficar assim cada vez que te mandarem estudar você ta perdido… porque você vai ter que fazer isso sempre… como muitos de nós sabemos, você pode estar aprendendo os básicos… e acredite, eu também estou…

mas agora sempre que me falam pra estudar, ou postam uma apostila pra resolver uma dúvida minha ou algo do tipo… eu agradeço e vou estudar cara… porque eu sei que posso fazer perguntas ridículas… mas não fico bravo quando alguém que sabe mais do que eu me dá um puxão de orelha…

abraço!

K

j.silvestre:
kritiuns

Cara da minha parte vamos deixar prá lá … vc tentou ajudar… depois dengringolou… mas blz…

quanto ao digão neves as mensagens que ele posta pelo menos as que eu vi não ajudaram muito ninguém… veja a mensagem dele nest tópico.

agora veja outra mensagem dele :

" beleza… o enunciado a gente entendeu… mas qual a dúvida? o que você ja fez? gerou algum erro?

e por favor… leia o post do drsmachado

ou simplesmente quando for escrever algum código use as tags code…
"

esse cara ajuda muito.

infelizmente atitudes como essa desestimulam muita gente a participar do fórum. são atitudes intimidatórias…

sds

j.silvestre

Resolvi sua dúvida ?
está com o seu programa funcionando ?

o objetivo do fórum é ajudar mais tem horas que agente perde a cabeça com certas coisas…

enfim coloque [RESOLVIDO] caso vc tenha tido sucesso com o seu programa

um grande Abraço!

J

Tá bom digão…

se vc não entendeu o meu problema…lamento…

qual a sua duvida ???

eu ainda estou precisando de ajuda…

vc pode me ajudar… ???

cara quanto ao post foi o primeiro que eu peguei seu… que azar o seu …

sds

j.silvestre

I

j.silvestre… vc testou as dicas do pessoal? nenhuma resposta lhe foi satisfatória? o método getNome() não atingiu seu propósito?
voce LEU a documentação da Oracle sobre jTextField? estudou ela pra ver se há algum método que atinge seu objetivo?

Se fez tudo isso e ainda sim não conseguiu resolver seu problema, poste onde seu código está dando erro para que possamos analisar melhor.

Abraços.

J

igor valew…

mas resolvi usando a dica do pgioseffi associei o um Label ao JTextField.

mas a dica do kritiuns estava correta, por algum motivo não funcionou no netbeans.

sds

j.silvestre

I

Que bom, edita seu primeiro post e coloca [RESOLVIDO] no título do tópico para que pessoas que tiveram a mesma dúvida, possam ver que o seu problema foi resolvido e como foi.

Obrigado,

Abraços

D

digaoneves:
j.silvestre:
kritiuns

Cara da minha parte vamos deixar prá lá … vc tentou ajudar… depois dengringolou… mas blz…

quanto ao digão neves as mensagens que ele posta pelo menos as que eu vi não ajudaram muito ninguém… veja a mensagem dele nest tópico.

agora veja outra mensagem dele :

" beleza… o enunciado a gente entendeu… mas qual a dúvida? o que você ja fez? gerou algum erro?

e por favor… leia o post do drsmachado

ou simplesmente quando for escrever algum código use as tags code…
"

esse cara ajuda muito.

infelizmente atitudes como essa desestimulam muita gente a participar do fórum. são atitudes intimidatórias…

sds

j.silvestre

opa… vamos la…

eu tenho mais de 70 posts aqui e com certeza você pegou um dos únicos onde eu perdi a paciência para tentar advinhar na minha bola de cristal qual era o problema do cara… ou simplesmente não queria mais resolver outro exercício de faculdade…

quando uma pessoa posta uma dúvida pertinente e eu consigo ajudar… eu sempre ajudo, pode olhar que eu não escondo nada…

agora no seu caso…

você chega aqui e posta sua dúvida… até aí sem problemas.
o pessoal tenta te ajudar… você demonstra problemas pra explicar a sua própria dúvida… não conhece os detalhes do que ta desenvolvendo… até aí também tudo bem…

uma pessoa te pede pra estudar mais e você perde a linha… agora ja não ta nada bem mais…

nesse mundo aqui se você ficar assim cada vez que te mandarem estudar você ta perdido… porque você vai ter que fazer isso sempre… como muitos de nós sabemos, você pode estar aprendendo os básicos… e acredite, eu também estou…

mas agora sempre que me falam pra estudar, ou postam uma apostila pra resolver uma dúvida minha ou algo do tipo… eu agradeço e vou estudar cara… porque eu sei que posso fazer perguntas ridículas… mas não fico bravo quando alguém que sabe mais do que eu me dá um puxão de orelha…

abraço!

É a questão do respeito, da vontade, do saber o que se quer.
Estudar é algo que não precisaria ser dito pelas pessoas, temos que compreender que nada cai do céu.
Juro que entro todo dia no guj e espero encontrar dúvidas bem abalizadas, com o mínimo de “falta de vontade” possível.

Um premissa, sempre pesquise no google o que se quer, veja se há algo, mesmo em outro idioma.
Se for o caso, coloca o link aí pra tentarmos ler e ver se se encaixa na questão.

P

Você testou o código que eu te mandei?

K

j.silvestre:
igor valew…

mas resolvi usando a dica do pgioseffi associei o um Label ao JTextField.

mas a dica do kritiuns estava correta, por algum motivo não funcionou no netbeans.

sds

j.silvestre

j.silvestre Coloque este tópico como [RESOLVIDO].

J

pgioseffi

na verdade eu usei a sua idéia… e funcionou, não usei o seu código. valew…

outra coisa que eu não estou dominando é a IDE Netbeans, creio eu, pois já ocorreu que duas coisas que funciona
quando se cria a GUI na unha ou na munheca, não funcionou quando eu criei a GUI com o netbeans uma foi o tópico em questão, e outra foi quando
precisei limitar o numero de caracteres em JTextField peguei um exemplo aqui no forum que também funciona , mas
com Netbeans não funcionou. Neste caso solucionei também vendo a idéia aqui no forum de alguem que resolveu este
problema usando eventos de teclado.
Resumindo com o Netbeans eu tive que usar 2 “desvios” para solucionar problemas que não teriam acontecido se eu
tivesse criado a GUI na munheca.

agradeço a todos que me ajudaram e desculpe o mal estar gerado.

sds

j.silvestre

“Avance mesmo em meio a neblina”

R

só um detalhe, amigo

você tem que editar o seu primeiro post la pra colocar o [RESOLVIDO]
se altera o último não aparece na lista dos tópicos la… :slight_smile:

que bom que conseguiu resolver seu problema

mais uma coisa: tentei usar o netbeans uma vez e não me dei muito bem com ele não… e o eclipse tem um plugin que gera interfaces também, eu acho mais simples, talvez tenha menos facilidades, não sei… sei que é bom e eu uso… fica a dica

abraço!

J

OK. alterado.

sds

j.silvestre

P

j.silvestre,

Abre um tópico no fórum de IDEs que com certeza alguém vai te explicar como editar o código gerado pelo NetBeans para interface gráfica. Eu sei que tem como, só que como nunca usei, não sei como é.

No mais, se quiser mudar de editor, o Google Windowbuilder Pro plugin pro Eclipse ajuda e muito na construção de interfaces Swing.

Criado 23 de maio de 2011
Ultima resposta 24 de mai. de 2011
Respostas 34
Participantes 7