Propriedades do JTextField

25 respostas
fscpv

Bom dia,

Gostaria de saber como faço para manipular um JTextField. Por exemplo, para eu capturar a Strings devo utilizar o metodo Scanner? para comparar
o “Texto”, posso usar um if (JTextField1 = JTextField2) Seria assim??? :roll:

25 Respostas

H

fscpv:

Bom dia,

Gostaria de saber como faço para manipular um JTextField. Por exemplo, para eu capturar a Strings devo utilizar o metodo Scanner? para comparar
o “Texto”, posso usar um if (JTextField1 = JTextField2) Seria assim??? :roll:

O JTextField também é um objeto, ou seja, possui métodos que permitam a manipulação dos dados.
Para pegar o valor de um JTextField, você deve fazer:

JTextField.getText();

Para inserir um valor diretamente pelo código fonte: JTextField.setText(“ALguma coisa”);

Portanto, comparar seria mais ou menos isso:
if (JTextField1.getText().equals(JTextField2.getText()))

Procure entender que comparar Strings em java não é como comparar valores inteiros (int).
Espero ter ajudado.
:wink:

kicolobo

Opa.

use apenas os métodos getText() para retornar o texto digitado e setText(“sua string”) para definir o valor.

Para comparar os valores, seria algo como

textField1.getText().equals(textField2.getText())
ArchV

fscpv:

Bom dia,

Gostaria de saber como faço para manipular um JTextField. Por exemplo, para eu capturar a Strings devo utilizar o metodo Scanner? para comparar
o “Texto”, posso usar um if (JTextField1 = JTextField2) Seria assim??? :roll:

Então, primeiramente, quando você desconhece como manipular os métodos de uma classe consulte a API Java
Após, procure a classe que você deseja entender melhor, neste caso a classe JTextField. Logo, analisando um pouco a api desta classe você irá ver que existe um método chamado getText() na classe JTextComponent que é a super classe em relação ao JTextField. No entanto, analisando este método getText() em sua específicação diz que ele retorna uma string que está escrito no JTextField. Portanto é isso que você precisa.

Vlw, abraço!

fscpv

Caros Companheiros,

Gostaria de agradecer pela prontidão junto a minha duvida, dizer que nunca passei por um forum onde as pessoas realmente respondecem com tanta rapidez. muito obrigado!

fscpv

Boa Noite,

É com grande satisfação que volto ao fórum, infelizmente ainda solicitando ajuda “acho que deve ser melhor ensinar :)”

Minha duvida é a seguinte: ja consegui o lance do JTextField, Mas agora quero que ao clicar em um Jbutton de nome comparar ele execute o if. Como faço isso estou com a api jdk 5.0 mas ainda estou meio perdido. :cry:
Muito Obrigado!

ArchV

fscpv:
Boa Noite,

É com grande satisfação que volto ao fórum, infelizmente ainda solicitando ajuda “acho que deve ser melhor ensinar :)”

Minha duvida é a seguinte: ja consegui o lance do JTextField, Mas agora quero que ao clicar em um Jbutton de nome comparar ele execute o if. Como faço isso estou com a api jdk 5.0 mas ainda estou meio perdido. :cry:
Muito Obrigado!

usando a interface ActionListener:

class XXX implements ActionListener
{
private JButton botao
private JButton meuBotao("Clique")

...

  public void actionPerformed(ActionEvent e)
  {
      botao = (JButton)e.getSource();
      if(botao.getText().equals("Clique")
      {
      // Sequencia de comandos, perceba que o JButton botao é um botao usado para comprarar com outro objeto que no caso é outro JButton, que foi feito o cast no getSource()
      }

  }
}

Ou…

class XXX implements ActionListener
{

private JButton meuBotao("Clique")

...

  public void actionPerformed(ActionEvent e)
  {
      String action = e.getActionCommand();
      if(botao.getText().equals(action)
      {
  // Sequencia de comandos, perceba que neste caso não precisamos do "JButton botao"  para comprarar com outro objeto JButton.
        
      }

  }
}
fscpv

Obrigado pela resposta mas, como posso na classe que criei adicionar o “implements ActionListener” se ela encontrasse assim: “Class Main extends Jframe” seria: “Class Main extends Jframe implements ActionListener” ?

Já gradeço por toda a compreenção! :smiley:

ArchV

fscpv:

Obrigado pela resposta mas, como posso na classe que criei adicionar o “implements ActionListener” se ela encontrasse assim: “Class Main extends Jframe” seria: “Class Main extends Jframe implements ActionListener” ?

Já gradeço por toda a compreenção! :smiley:

sim

fscpv

Bom dia,

Depois de um final de semana desgastande retorno ao estudo relacionado ao Java e como nao poderia ser diferente trago mais um dúvida! :frowning:
Consegui com a ajuda de vocês chegar até aqui. Estou me esforçando mais ainda nao consigo caminhar como minhas própris pernas.

Então, Na parte da ação do código gostaria de implementar ao BtRegistrar a função CalculaChave, que na teoria deve converter a String em Hexadecimal,
sendo assim possivel que a pessoa tenha que digitar a senha equivalente ao usuario só que em hexadecimal.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 *
 * @author adm.felipe
 */
public class Main extends JFrame implements ActionListener {

  public Main(String titulo){

    super("Crack Me");
    this.setResizable(false); //Trava o redirecionamento da janela
    setLocation(120,150); // Localização da janela na tela
    setSize(200,120);   // Tamanho da Janela
    setLayout(new FlowLayout()); // Determinando o Gerenciador de Layout

    JLabel LUsuario = new JLabel("Usuario: "); // Rótulo Usuario
    JLabel LSenha = new JLabel("Senha:   ");   // Rótulo Senha

    JButton BtRegistrar = new JButton("Registrar"); // Botão Registrar
    JButton Btcancelar = new JButton("Cancelar");   // Botão Cancelar

    JTextField TfUsuario = new JTextField(null,10);
    // Campo para digitar o Usuario

    JTextField TfSenha = new JTextField(null,10);
    // Campo para digitar a Senha

    add(LUsuario,BorderLayout.WEST);
    add(TfUsuario,BorderLayout.CENTER);
    add(LSenha,BorderLayout.WEST);
    add(TfSenha,BorderLayout.WEST);
    add(BtRegistrar,BorderLayout.SOUTH);
    add(Btcancelar,BorderLayout.NORTH);

    TfUsuario.getText();
    // O getText é responsável por pegar o valor digitado no referido campo.

    TfSenha.getText();

}
  


  public static void main(String args[]){
      Main f = new Main("teste");
      f.setVisible(true);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  private static String CalculaChave(String nome) {
        String chave = "";
        for (int i=0; i<nome.length(); i++) {
        char letra = nome.charAt(i);
        int letraDecimal = (int)letra;
        chave += Integer.toHexString(letraDecimal);
        }
        return chave;
    }

   public void actionPerformed(ActionEvent e)  {
    
       /* Nesta parte do código, gostaria de implementar a ação do BtRegistrar para 
       * pegar a função CalculaChave, que na teoria deve converter a String em Hexadecimal,
       * sendo assim possivel que o usuario tenha que digitar a senha equivalente 
       * ao usuario só que em hexadecimal.      
       */
   }
}

Por favor existe algum erro no código?

Desde Já Agradeço! :smiley:

S

Erro não há, apenas não colocou a linha ouvinte do btcancelar “btcancelar.addActionListener(this);” e não implementou o código no ActionEvent.
Fiz um evento acontecer no seu botão Cancelar. Dê uma olhada nas alterações do seu código e tente fazer pro outro botão.
Qualquer dúvida post novamente.
Abraço.

import java.awt.*;  
import java.awt.event.*;  
import javax.swing.*;  
  
/** 
* 
* @author adm.felipe 
*/  
public class Main extends JFrame implements ActionListener {  
  
	private JButton Btcancelar;
	private JTextField TfUsuario = new JTextField(null,10); // Campo para digitar o Usuario  
    private JTextField TfSenha = new JTextField(null,10); // Campo para digitar a Senha  
    
	
  public Main(String titulo){  
  
    super("Crack Me");  
    this.setResizable(false); //Trava o redirecionamento da janela  
    setLocation(120,150); // Localização da janela na tela  
    setSize(200,120);   // Tamanho da Janela  
    setLayout(new FlowLayout()); // Determinando o Gerenciador de Layout  
  
    JLabel LUsuario = new JLabel("Usuario: "); // Rótulo Usuario  
    JLabel LSenha = new JLabel("Senha:   ");   // Rótulo Senha  
  
    JButton BtRegistrar = new JButton("Registrar"); // Botão Registrar  
    Btcancelar = new JButton("Cancelar");   // Botão Cancelar
    
    Btcancelar.addActionListener(this); // REGISTRANDO O BOTÃO CANCELAR. ADICIONANDO UM OUVINTE AO btcancelar.
  
    TfUsuario = new JTextField(null,10);  
    // Campo para digitar o Usuario  
  
    TfSenha = new JTextField(null,10);  
    // Campo para digitar a Senha  
  
    add(LUsuario,BorderLayout.WEST);  
    add(TfUsuario,BorderLayout.CENTER);  
    add(LSenha,BorderLayout.WEST);  
    add(TfSenha,BorderLayout.WEST);  
    add(BtRegistrar,BorderLayout.SOUTH);  
    add(Btcancelar,BorderLayout.NORTH);  
  
    TfUsuario.getText();  
    // O getText é responsável por pegar o valor digitado no referido campo.  
  
    TfSenha.getText();  
  
}  
    
  
  
  public static void main(String args[]){  
      Main f = new Main("teste");  
      f.setVisible(true);  
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  }  
  
  private static String CalculaChave(String nome) {  
        String chave = "";  
        for (int i=0; i<nome.length(); i++) {  
        char letra = nome.charAt(i);  
        int letraDecimal = (int)letra;  
        chave += Integer.toHexString(letraDecimal);  
        }  
        return chave;  
    }  
  
   public void actionPerformed(ActionEvent e)  {
	   
	   if(e.getSource() == Btcancelar){
		   TfUsuario.setText("");
		   TfSenha.setText("");
		   JOptionPane.showMessageDialog(null, "Digite novamente !");
		   TfUsuario.grabFocus();
	   }
      
       /* Nesta parte do código, gostaria de implementar a ação do BtRegistrar para  
       * pegar a função CalculaChave, que na teoria deve converter a String em Hexadecimal, 
       * sendo assim possivel que o usuario tenha que digitar a senha equivalente  
       * ao usuario só que em hexadecimal.       
       */  
   }  
}
fscpv

Muito obrigado santos.fernando, vou tentar agora e ja posto!

fscpv

Fernando,
Nesta parte do código está aparecendo umas linhas vermenlhas e diz que as variaveis nao estao no Main. Mais como se as declarei lá?

E na primeira linha do if o "e" se refere ao "e" do ActivEvent? e o getSource diz qual é o objeto que vou manipular é isso?

public void actionPerformed(ActionEvent e)  {

       
     if(e.getSource() == Btcancelar){  
            TfUsuario.setText("");  
            TfSenha.setText("");  
            JOptionPane.showMessageDialog(null, "Digite novamente !");  
            TfUsuario.grabFocus();  
       
     }
S

Vc copiou todo código que eu lhe passei, ou copiou apenas uma parte dele ? Se não copiou, copie e cole em cima do código que vc fez, eu fiz algumas alterações e pode ser isso, mas antes de copiar faça um backup do código original.

fscpv

Fernando,

Rodou direitinho, tentei até colocar o evento para o be registrar só que nao estou conseguindo, voce pode me dizer como tenho que fazer? crio outro public void actionPerformed(ActionEvent e) ? ou dentro desse tenho que colocar o que? para permitir que eu crie o evento por que coloquei um outro if a cima do botão do if do botão cancelar nao deu erro mas ele retirou a função do cancelar! :cry:

fscpv

Já add private JButton BtRegistrar; e o BtRegistrar.addActionListener(this);

S

Vc vai utilizar apenas um ActionEvent pra todos seus eventos.
Dentro do ActionEvent que já foi criado vc coloca o que quer se seu botão faça, exemplo:

public void actionPerformed(ActionEvent e)  {
	   
	   if(e.getSource() == Btcancelar){
		   TfUsuario.setText("");
		   TfSenha.setText("");
		   JOptionPane.showMessageDialog(null, "Digite novamente !");
		   TfUsuario.grabFocus();
	   }

    if(e.getSource() == btRegistrar){
      // Aqui vc vai colocar as ações do botão, chamar os métodos que vc quer executar, etc ...
    }
       
   }
fscpv

Boa tarde,

Pessoal! O Fernando estava me ajudando com esse programinha só que ele está offline. gostaria de perguntar qual foi o meu erro nesta parte do código

if(e.getSource() == BtRegistrar){
           
         TfUsuario.getText();
         (TfSenha.getText().equalsTfKey(CalculaChave()));
         JOptionPane.showMessageDialog(null, "Registrado com Sucesso !");
          
      }

Aqui Segue o codigo na Integra.

import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;

 /**
 *
 * @author adm.felipe
 */
 public class Main extends JFrame implements ActionListener {

   private JButton BtRegistrar;
   private JButton Btcancelar;
   private JTextField TfUsuario = new JTextField(null,10);
   // Campo para digitar o Usuario
   private JTextField TfSenha = new JTextField(null,10); 
   // Campo para digitar a Senha
   private JTextField TfKey = new JTextField(null,10);
    

   public Main(String titulo){

     super("Crack Me");
     this.setResizable(false); //Trava o redirecionamento da janela
     setLocation(120,150); // Localização da janela na tela
     setSize(200,120);   // Tamanho da Janela
     setLayout(new FlowLayout()); // Determinando o Gerenciador de Layout

     JLabel LUsuario = new JLabel("Usuario: "); // Rótulo Usuario
     JLabel LSenha = new JLabel("Senha:   ");  // Rótulo Senha

     BtRegistrar = new JButton("Registrar"); // Botão Registrar
     Btcancelar = new JButton("Cancelar");  // Botão Cancelar


     BtRegistrar.addActionListener(this);
     // REGISTRANDO O BOTÃO CANCELAR. ADICIONANDO UM OUVINTE AO btcancelar.
     
     Btcancelar.addActionListener(this);
     // REGISTRANDO O BOTÃO CANCELAR. ADICIONANDO UM OUVINTE AO btcancelar.

     TfKey.addActionListener(this);
     // REGISTRANDO O BOTÃO CANCELAR. ADICIONANDO UM OUVINTE AO btcancelar.
     
     TfUsuario = new JTextField(null,10);
     // Campo para digitar o Usuario

     TfSenha = new JTextField(null,10);
     // Campo para digitar a Senha

     add(LUsuario,BorderLayout.WEST);
     add(TfUsuario,BorderLayout.CENTER);
     add(LSenha,BorderLayout.WEST);
     add(TfSenha,BorderLayout.WEST);
     add(BtRegistrar,BorderLayout.SOUTH);
     add(Btcancelar,BorderLayout.NORTH);

     TfUsuario.getText();
     // O getText é responsável por pegar o valor digitado no referido campo.

     TfSenha.getText();
}

     public static void main(String args[]){
       Main f = new Main("teste");
       f.setVisible(true);
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }

     private static String CalculaChave(String nome) {
       String chave = "";
       for (int i=0; i<nome.length(); i++) {
       char letra = nome.charAt(i);
       int letraDecimal = (int)letra;
       chave += Integer.toHexString(letraDecimal);
       }
       return chave;
     }

     public void actionPerformed(ActionEvent e)  {

 
       if(e.getSource() == Btcancelar){ 
       
         TfUsuario.setText(""); // Limpa o texto digitado
         TfSenha.setText("");  // Limpa o texto digitado
         JOptionPane.showMessageDialog(null, "Digite novamente !");
         TfUsuario.grabFocus(); // Passa o cursor 
       } 


       if(e.getSource() == BtRegistrar){
           
         TfUsuario.getText();
         (TfSenha.getText().equalsTfKey(CalculaChave()));
         JOptionPane.showMessageDialog(null, "Registrado com Sucesso !");
          
      }
    }
  }

Agradeço a ajuda :D

fscpv

Galera!

Voltei ao Fórum, para agradecer a ajuda de todos. Consegui alcançar o primeiro objetivo que seria de criar um sistema de validação para um software ficticio, claro que quero melhorar um pouco mas o principal ja esta feito. Muito Obrigado!

Segue o código para os que queiram analisar! tendo em vista que sou iniciante :smiley:

import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;

 /**
 *
 * @author adm.felipe
 */
 public class Main extends JFrame implements ActionListener {

     private JButton BtRegistrar;
     private JButton Btcancelar;
     private JTextField TfUsuario = new JTextField(null,10); // Campo para digitar o Usuario
     private JTextField TfSenha = new JTextField(null,10); // Campo para digitar a Senha
    

     public Main(String titulo){

     super("Crack Me");
     this.setResizable(false);
     //Trava o redirecionamento da janela
     
     setLocation(120,150);
     // Localização da janela na tela
     
     setSize(200,120);
     // Tamanho da Janela

     setLayout(new FlowLayout()); // Determinando o Gerenciador de Layout

     JLabel LUsuario = new JLabel("Usuario: "); // Rótulo Usuario
     JLabel LSenha = new JLabel("Senha:   ");   // Rótulo Senha

     BtRegistrar = new JButton("Registrar"); // Botão Registrar
     Btcancelar = new JButton("Cancelar");   // Botão Cancelar

     BtRegistrar.addActionListener(this);
     // REGISTRANDO O BOTÃO CANCELAR. ADICIONANDO UM OUVINTE AO btcancelar.

     Btcancelar.addActionListener(this);
     // REGISTRANDO O BOTÃO CANCELAR. ADICIONANDO UM OUVINTE AO btcancelar.

     TfUsuario = new JTextField(null,10);
     // Campo para digitar o Usuario

     TfSenha = new JTextField(null,10);
     // Campo para digitar a Senha

     add(LUsuario,BorderLayout.WEST);
     add(TfUsuario,BorderLayout.CENTER);
     add(LSenha,BorderLayout.WEST);
     add(TfSenha,BorderLayout.WEST);
     add(BtRegistrar,BorderLayout.SOUTH);
     add(Btcancelar,BorderLayout.NORTH);

 }

     public static void main(String args[]){
       Main f = new Main("teste");
       f.setVisible(true);
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }

     private static String CalculaChave(String nome) {
         String chave = "";
         for (int i=0; i<nome.length(); i++) {
         char letra = nome.charAt(i);
         int letraDecimal = (int)letra;
         chave += Integer.toHexString(letraDecimal);
         }
         return chave;
     }

     public void actionPerformed(ActionEvent e)  {

 
          if(e.getSource() == Btcancelar){
              TfUsuario.setText("");
              TfSenha.setText("");
              JOptionPane.showMessageDialog(null, "Digite novamente !");
              
          }

          if(e.getSource() == BtRegistrar){
              if (TfSenha.getText().equals(CalculaChave(TfUsuario.getText()))){
              JOptionPane.showMessageDialog(null, "Registrado com Sucesso !");
              

              } else
              
              JOptionPane.showMessageDialog(null, "Erro ao Digitar o Usuario e ou Senha !");
              // vou tratar essa parte a inteção era verificar se o else funcionaria

              TfUsuario.setText("");
              TfSenha.setText("");
              TfUsuario.grabFocus();

   }
  }
 }
ArchV

Conselho:

  • Use a conveção dos desenvolvedores java para nomear objetos, variáveis , nomes de métodos, enfim. Isso facilita tanto a sua vida como a vida de 3ºs que irão ler o seu código!

Flw!

Thiago_de_Paula_Bese

Olá Pessoal

Alguem poderia me explicar o super("crack me");?
não entendi o porque dele!

Desde já agradeço :slight_smile:

M

Thiago de Paula Beserra:
Olá Pessoal

Alguem poderia me explicar o super("crack me");?
não entendi o porque dele!

Desde já agradeço :slight_smile:


Esse código chama o construtor da superclasse que aceita uma String (no caso é o construtor JFrame(String), que cria um JFrame com o título especificado).

fscpv

Archv

Onde encontro a conveção dos desenvolvedores java? ja dei uma googlada mas não achei. pode me dizer onde encontro? obrigado!

M

Dá uma “googlada” de novo:
http://www.google.com.br/search?q=java+code+conventions
Primeiro resultado.

fscpv

marcobiscaro2112:
Dá uma “googlada” de novo:
http://www.google.com.br/search?q=java+code+conventions
Primeiro resultado.

Nao sabia que tinha que ser em inglês! :frowning:
Mas muito obrigado! :smiley:

barney

fscpv:
marcobiscaro2112:
Dá uma “googlada” de novo:
http://www.google.com.br/search?q=java+code+conventions
Primeiro resultado.

Nao sabia que tinha que ser em inglês! :frowning:
Mas muito obrigado! :smiley:

cara aconselho dar uma olhada em MVC também
assim vai ficar muito mais fácil identificar possíveis erros em sua aplicação
separando o seu código flw !!
bons estudos :slight_smile:

Criado 8 de janeiro de 2010
Ultima resposta 18 de jan. de 2010
Respostas 25
Participantes 8