Objeto JTextField

16 respostas
ponte

Como faço a comparação de um objeto da classe JTextField?

Tipo assim eu criei um objeto assim:

JTextField textol = new JTextField();

Ai inseri este objeto dentro de uma janela.

Eu tenho que fazer o seguinte eu quero comparar o que o usuário digitar dentro deste objeto(textol) com uma string ou um número, usando um if, tipo assim se o que estiver dentro do objeto for igual ao que o usuário digitou ele irá para o próximo ponto de execução do programa caso contrário não fará nada.

Desde já agradeço aos que tentarem me ajudar.

16 Respostas

JonnyStayle

Amigo para comparar string usa-se o equals.

Ex:

if(Variavel.equals(variavel2)){

Código

}
lina

Oi,

Para pegar o conteudo digitado em seu TextField, utilize o método getText().
Para aplica-lo no IF, basta fazer:

if ("String_Comparada".equals(seutextfield.getText())) {

}

Tchauzin!

MarcioCasteloBranco

O exemplo da lina e legal, o do JonnyStayle também so que se vc for comparar string com equals vai funcionar, e com objetos neste caso Jtextfield vc terá que sobrescrever o equals e o hashcode .

ponte

Olá, fica assim então:

String x =“123”;

if(x.equals(textol.getText())){
	botaol.addActionListener(new Clicado());
  }

Não ta dando certo…

Marcio_Lima

O comando

botaol.addActionListener(new Clicado());

não gera um desvio para outro ponto; ele apenas indica uma rotina de evento.
Está faltando um comando de desvio, como:

if(x.equals(textol.getText())){ 
   ProcessaDados(); 
} 
private void ProcessaDados() {
(. . .)
}
ponte

Marcio_Lima:
O comando

botaol.addActionListener(new Clicado());

não gera um desvio para outro ponto; ele apenas indica uma rotina de evento.
Está faltando um comando de desvio, como:

if(x.equals(textol.getText())){ 
   ProcessaDados(); 
} 
private void ProcessaDados() {
(. . .)
}


É que sou iniciante, to aqui quebrando a cabeça…
Fica assim então:

private void ProcessaDados(){

botaol.addActionListener(new Clicado());

}
if(x”.equals(textol.getText())){

ProcessaDados();

}

??

Mais testei e não deu certo.
Marcio_Lima

Não dá certo, porque você espera que o comando abaixo realize alguma ação

botaol.addActionListener(new Clicado());

mas, como já disse, ele apenas indica que existe uma rotina de evento. Sua utilização normal é no processo de instanciação do botão.

Se você quer executar ações como se o botaol tivesse sido clicado, transcreva essas ações (que estão no procedimento Clicado) para o procedimento ProcessaDados e, lá no procedimento Clicado chame o procedimento ProcessaDados. Algo como:

ActionListener Clicado = new ActionListener() {
        public void actionPerformed(ActionEvent actionEvent) {
         processaDados();
        }
       };

private void ProcessaDados(){ 
   // fazer algo com o que foi digitado
   JOptionPane.showMessageDialog(null, "Você clicou num botão","Favor aguardar",1); 
}
ponte
[quote=Marcio_Lima]Não dá certo, porque você espera que o comando abaixo realize alguma ação
botaol.addActionListener(new Clicado());
mas, como já disse, ele apenas indica que existe uma rotina de evento. Sua utilização normal é no processo de instanciação do botão.

Se você quer executar ações como se o botaol tivesse sido clicado, transcreva essas ações (que estão no procedimento Clicado) para o procedimento ProcessaDados e, lá no procedimento Clicado chame o procedimento ProcessaDados. Algo como:
[code]
ActionListener Clicado = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
processaDados();
}
};
Desculpa mais ainda to sem entender...
Tipo assim eu tenho o objeto textol ( que é uma caixa de texto que aparece na tela certo...), esta caixa de texto é pra ser onde o usuário vai colocar o nome, tenho também uma caixa de texto para colocar a senha, e dois botões: botaol e botaos,
ao clicar no botaol que é o botao de login ele compare o que está na caixa de texto com uma string qualquer e efetue o evento, tipo abrir uma nova janela ou por exemplo exibir uma mensagem?

Grato.

Marcio_Lima

Definição do botão:

botaol = new Button("LOGIN");
  botaol.addMouseListener(this);

Definição do evento:

public void mouseClicked(MouseEvent mEv) {
      if(x.equals(textol.getText())){   
           JOptionPane.showMessageDialog(null, "Você clicou num botão","Fazer Login",1);   
           ProcessaDados();   
      }
  }

para informações complementares, favor postar seu código.

ponte

Marcio_Lima:
Definição do botão:

botaol = new Button("LOGIN");
  botaol.addMouseListener(this);

Definição do evento:

public void mouseClicked(MouseEvent mEv) {
      if(x.equals(textol.getText())){   
           JOptionPane.showMessageDialog(null, "Você clicou num botão","Fazer Login",1);   
           ProcessaDados();   
      }
  }

para informações complementares, favor postar seu código.

Este é meu código:

[b]import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.event.MouseListener;
import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class JLogin extends JFrame {

JButton botaol = new JButton("Login");
JButton botaos = new JButton("Sair");
JTextField textol = new JTextField();
JTextField textos = new JTextField("y");
JLabel label_login = new JLabel("Nome :::>");
JLabel label_senha = new JLabel("<::: Senha");






//este é o construtor possui as informações para construir a janela
public JLogin(){
	
	Container tela = this.getContentPane();
	tela.setLayout(new FlowLayout());
	this.getContentPane().setLayout(null);//
	
	
	//define as dimensões da janela
	this.setSize(500,300);
	
	//define o titulo da janela
	this.setTitle("TELA DE LOGIN");
	
	//centraliza a janela
	this.setLocationRelativeTo(null);
	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	//coloca cor de fundo na janela
	tela.setBackground(Color.black);
	
	//posicionamento de campos na tela
	botaol.setBounds(90, 200, 100,30 );

	botaos.setBounds(300, 200,100,30);
	textol.setBounds(195,80,100,20);
    textos.setBounds(195,120,100,20);
    label_login.setBounds(140,80,100,20);
    label_senha.setBounds(300,120,100,20);
    	
	//adicionando os componentes a tela 
	tela.add(botaol);
	tela.add(botaos);
	tela.add(textol);
	tela.add(textos);
	tela.add(label_login);
	tela.add(label_senha);
	 
	 
	 
	//mostra a janela criada
	this.setVisible(true);
}

public static void main(String[] args) {
    
    //executa as instruçoes do construtor JLogin
	new JLogin();

}

}[/b]

Onde coloco isso ai que me falo no código acima?

InSeOfKn

por favor utilize as tag e
fica dificil de ler seu código

ponte

InSeOfKn:
por favor utilize as tag e
fica dificil de ler seu código

Este é meu código:

import java.awt.Color; 
import java.awt.Container; import java.awt.Dimension; 
import java.awt.FlowLayout; 
import java.awt.Font; 
import java.awt.event.MouseListener; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 



public class JLogin extends JFrame { 


JButton botaol = new JButton("Login"); 
JButton botaos = new JButton("Sair"); 
JTextField textol = new JTextField(); 
JTextField textos = new JTextField("y"); 
JLabel label_login = new JLabel("Nome :::>"); 
JLabel label_senha = new JLabel("<::: Senha"); 






//este é o construtor possui as informações para construir a janela 
public JLogin(){ 

Container tela = this.getContentPane(); 
tela.setLayout(new FlowLayout()); 
this.getContentPane().setLayout(null);// 


//define as dimensões da janela 
this.setSize(500,300); 

//define o titulo da janela 
this.setTitle("TELA DE LOGIN"); 

//centraliza a janela 
this.setLocationRelativeTo(null); 
this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
//coloca cor de fundo na janela 
tela.setBackground(Color.black); 

//posicionamento de campos na tela 
botaol.setBounds(90, 200, 100,30 ); 

botaos.setBounds(300, 200,100,30); 
textol.setBounds(195,80,100,20); 
textos.setBounds(195,120,100,20); 
label_login.setBounds(140,80,100,20); 
label_senha.setBounds(300,120,100,20); 

//adicionando os componentes a tela 
tela.add(botaol); 
tela.add(botaos); 
tela.add(textol); 
tela.add(textos); 
tela.add(label_login); 
tela.add(label_senha); 



//mostra a janela criada 
this.setVisible(true); 
} 

public static void main(String[] args) { 

//executa as instruçoes do construtor JLogin 
new JLogin(); 

} 

}

Onde coloco isso ai que me falo no código acima?

InSeOfKn

você deve estar com CheckBox “Desabilitar formatação BB nesta mensagem” marcado

desmarque ele la em baixo quando for postar algo
geralmente vem desmarcada mais como você citou minha resposta que estava marcada ele veio marcado

edite a mensagem e desmarque o CheckBox!

ponte

InSeOfKn:
você deve estar com CheckBox “Desabilitar formatação BB nesta mensagem” marcado

desmarque ele la em baixo quando for postar algo
geralmente vem desmarcada mais como você citou minha resposta que estava marcada ele veio marcado

edite a mensagem e desmarque o CheckBox!

Este é meu código:

import java.awt.Color; 
import java.awt.Container; import java.awt.Dimension; 
import java.awt.FlowLayout; 
import java.awt.Font; 
import java.awt.event.MouseListener; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 



public class JLogin extends JFrame { 


JButton botaol = new JButton("Login"); 
JButton botaos = new JButton("Sair"); 
JTextField textol = new JTextField(); 
JTextField textos = new JTextField("y"); 
JLabel label_login = new JLabel("Nome :::>"); 
JLabel label_senha = new JLabel("<::: Senha"); 






//este é o construtor possui as informações para construir a janela 
public JLogin(){ 

Container tela = this.getContentPane(); 
tela.setLayout(new FlowLayout()); 
this.getContentPane().setLayout(null);// 


//define as dimensões da janela 
this.setSize(500,300); 

//define o titulo da janela 
this.setTitle("TELA DE LOGIN"); 

//centraliza a janela 
this.setLocationRelativeTo(null); 
this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
//coloca cor de fundo na janela 
tela.setBackground(Color.black); 

//posicionamento de campos na tela 
botaol.setBounds(90, 200, 100,30 ); 

botaos.setBounds(300, 200,100,30); 
textol.setBounds(195,80,100,20); 
textos.setBounds(195,120,100,20); 
label_login.setBounds(140,80,100,20); 
label_senha.setBounds(300,120,100,20); 

//adicionando os componentes a tela 
tela.add(botaol); 
tela.add(botaos); 
tela.add(textol); 
tela.add(textos); 
tela.add(label_login); 
tela.add(label_senha); 



//mostra a janela criada 
this.setVisible(true); 
} 

public static void main(String[] args) { 

//executa as instruçoes do construtor JLogin 
new JLogin(); 

} 

}

Onde coloco isso ai que me falo no código acima?

InSeOfKn

ficaria assim no seu código

import java.awt.Color;   
import java.awt.Container; import java.awt.Dimension;   
import java.awt.FlowLayout;   
import java.awt.Font;   
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;   

import javax.swing.ImageIcon;   
import javax.swing.JButton;   
import javax.swing.JFrame;   
import javax.swing.JLabel;   
import javax.swing.JOptionPane;
import javax.swing.JPanel;   
import javax.swing.JTextField;   



public class JLogin extends JFrame {   


    JButton botaol = new JButton("Login");   
    JButton botaos = new JButton("Sair");   
    JTextField textol = new JTextField();   
    JTextField textos = new JTextField("y");   
    JLabel label_login = new JLabel("Nome :::>");   
    JLabel label_senha = new JLabel("<::: Senha");  
    /////////////////////////////////////////////////////////
    String UsuarioCorreto = "Usuario"; // quarda o valor correto para depois comparar com o texto
    /////////////////////////////////////////////////////////





    //este é o construtor possui as informações para construir a janela   
    public JLogin(){   

        Container tela = this.getContentPane();   
        tela.setLayout(new FlowLayout());   
        this.getContentPane().setLayout(null);//   


        //define as dimensões da janela   
        this.setSize(500,300);   

        //define o titulo da janela   
        this.setTitle("TELA DE LOGIN");   

        //centraliza a janela   
        this.setLocationRelativeTo(null);   
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);   
        //coloca cor de fundo na janela   
        tela.setBackground(Color.black);   

        /////////////////////////////////////////////////////////
        botaol.addActionListener(Clicado);  // adiciona uma ação para o botão botaol
        /////////////////////////////////////////////////////////
        //posicionamento de campos na tela   
        botaol.setBounds(90, 200, 100,30 );   

        botaos.setBounds(300, 200,100,30);   
        textol.setBounds(195,80,100,20);   
        textos.setBounds(195,120,100,20);   
        label_login.setBounds(140,80,100,20);   
        label_senha.setBounds(300,120,100,20);   

        //adicionando os componentes a tela   
        tela.add(botaol);   
        tela.add(botaos);   
        tela.add(textol);   
        tela.add(textos);   
        tela.add(label_login);   
        tela.add(label_senha);   



        //mostra a janela criada   
        this.setVisible(true);   
    }   


    public static void main(String[] args) {   

        //executa as instruçoes do construtor JLogin   
        new JLogin();   

    }  
    /////////////////////////////////////////////////////////
    ActionListener Clicado = new ActionListener() {  //o que vai acontecer quando clicar
        public void actionPerformed(ActionEvent actionEvent) {  
            if(UsuarioCorreto.equals(textol.getText())){     
                ProcessaDados();     
            }    
        }    
    };
    /////////////////////////////////////////////////////////
    private void ProcessaDados(){   
        // fazer algo com o que foi digitado  
        JOptionPane.showMessageDialog(null, "Você clicou num botão, e  o nome estava correto","Favor aguardar",1);   
        
    }  
    /////////////////////////////////////////////////////////


}

deixei bem destacado o que foi modificado

até mais

ponte

Ou muito obrigado a todos que tentaram me ajudar e valeu ai “InSeOfKn”.

Criado 9 de outubro de 2010
Ultima resposta 16 de out. de 2010
Respostas 16
Participantes 6