Dúvida na comparação com o getText()

11 respostas
Z

Estou com a seguinte dúvida:

public void mouseClicked(MouseEvent e){
											
	String quad1,quad2,quad3,quad4,quad5,quad6,quad7,quad8,quad9;
										
	if(e.getSource() == atualizar){
        	quad1 = quadrado1.getText();
		quad2 = quadrado2.getText();
		quad3 = quadrado3.getText();
		quad4 = quadrado4.getText();
		quad5 = quadrado5.getText();
		quad6 = quadrado6.getText();
		quad7 = quadrado7.getText();
		quad8 = quadrado8.getText();
		quad9 = quadrado9.getText();
																										
	        if((quad1 == quad2) && (quad1 == quad3)){
			JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
		}
		if(quad1 == quad4 && quad1 == quad7){
			JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
		}
		if(quad1 == quad5 && quad1 == quad9){
			JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
		}
		if(quad2 == quad5 && quad2 == quad8){
			JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
		}
		if(quad3 == quad6 && quad3 == quad9){
		        JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
		}
	}
}

quero fazer uma comparação, onde quero obter os valores de das variaveis de JTextField() que declarei anteriormente em outra função.

Me ajudem, Please.

11 Respostas

V

Uma string você compara com o "equals".

Fiz um exemplo:

public class TestGetText {
	String a = "a";
	String b = "b";
	String c = "d";

	public boolean verificar(){
		if(!a.equals("a")){
			return false;
		}
		if(!b.equals("b")){
			return false;
		}
		if(!c.equals("c")){
			return false;
		}
		
		return true;
	}
}

Se tudo ocorrer bem o "verificar" retornará "true". Se não ele retornada false.

Z

hum… acho q entendi um pouco… meu programa é este:

import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

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


public class Janela extends JFrame{
	JButton atualizar, restart;
	//criando as linhas de exebição na tela
	JLabel linha1, linha2, coluna1, coluna1_1, coluna1_2, coluna1_3, coluna1_4, coluna1_5;
	JLabel coluna2, coluna2_1, coluna2_2, coluna2_3, coluna2_4, coluna2_5;
	// criando os campos de preenchimento do jogo, para "X" or "O"
	JTextField quadrado1, quadrado2, quadrado3, quadrado4, quadrado5, quadrado6, quadrado7, quadrado8, quadrado9;

	//função de exebição
	Janela(){
		//encerrar programa, quando clicar em fechar
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//janela principal, atributos, tamanho, cor, e titulo
		this.setSize(280, 250);
		this.setTitle("Jogo da Velha");
		this.getContentPane().setLayout(null);
		this.getContentPane().setBackground(Color.cyan);
		
		//criação de linhas e colunas de exibição do jogo
		linha1 = new JLabel("________________");  		
		linha2 = new JLabel("________________");			
														
		coluna1 = new JLabel("|");		coluna1_1 = new JLabel("|");		coluna1_2 = new JLabel("|");		coluna1_3 = new JLabel("|");		coluna1_4 = new JLabel("|");		coluna1_5 = new JLabel("|");
		coluna2 = new JLabel("|");		coluna2_1 = new JLabel("|");		coluna2_2 = new JLabel("|");		coluna2_3 = new JLabel("|");		coluna2_4 = new JLabel("|");		coluna2_5 = new JLabel("|");
		
		//criando o tamanho, posicionamento e fazendo aparecer na tela do jogo, linhas e colunas
		linha1.setSize(150, 100);						linha2.setSize(150, 100);					
		linha1.setLocation(78, 25);						linha2.setLocation(78, 50);						
		this.getContentPane().add(linha1);				this.getContentPane().add(linha2);				
		
		coluna1.setSize(150, 100);						coluna2.setSize(150, 100);					
		coluna1.setLocation(110, 15);					coluna2.setLocation(140, 15);
		this.getContentPane().add(coluna1);				this.getContentPane().add(coluna2);			
		
		coluna1_1.setSize(150, 100);					coluna2_1.setSize(150, 100);					
		coluna1_1.setLocation(110, 27);					coluna2_1.setLocation(140, 27);
		this.getContentPane().add(coluna1_1);			this.getContentPane().add(coluna2_1);
		
		coluna1_2.setSize(150, 100);					coluna2_2.setSize(150, 100);
		coluna1_2.setLocation(110, 38);					coluna2_2.setLocation(140, 38);
		this.getContentPane().add(coluna1_2);			this.getContentPane().add(coluna2_2);
		
		coluna1_3.setSize(150, 100);					coluna2_3.setSize(150, 100);
		coluna1_3.setLocation(110, 48);					coluna2_3.setLocation(140, 48);
		this.getContentPane().add(coluna1_3);			this.getContentPane().add(coluna2_3);
		
		coluna1_4.setSize(150, 100);					coluna2_4.setSize(150, 100);
		coluna1_4.setLocation(110, 60);					coluna2_4.setLocation(140, 60);
		this.getContentPane().add(coluna1_4);			this.getContentPane().add(coluna2_4);
		
		coluna1_5.setSize(150, 100);					coluna2_5.setSize(150, 100);
		coluna1_5.setLocation(110, 72);					coluna2_5.setLocation(140, 72);
		this.getContentPane().add(coluna1_5);			this.getContentPane().add(coluna2_5);
		
		
		//criando os campos para serem preenchidos pelos jogadores
		quadrado1 = new JTextField();		quadrado4 = new JTextField();		quadrado7 = new JTextField();
		quadrado2 = new JTextField();		quadrado5 = new JTextField();		quadrado8 = new JTextField();
		quadrado3 = new JTextField();		quadrado6 = new JTextField();		quadrado9 = new JTextField();
		
		//criando o tamanho, posicionamento e fazendo aparecer na tela do jogo, os campos para serem preenchidos 
		quadrado1.setSize(25, 20);			quadrado1.setLocation(85, 60);		this.getContentPane().add(quadrado1);
		quadrado2.setSize(25, 20);			quadrado2.setLocation(115, 60);		this.getContentPane().add(quadrado2);
		quadrado3.setSize(25, 20);			quadrado3.setLocation(145, 60);		this.getContentPane().add(quadrado3);
		
		quadrado4.setSize(25, 20);			quadrado4.setLocation(85, 85);		this.getContentPane().add(quadrado4);
		quadrado5.setSize(25, 20);			quadrado5.setLocation(115, 85);		this.getContentPane().add(quadrado5);
		quadrado6.setSize(25, 20);			quadrado6.setLocation(145, 85);		this.getContentPane().add(quadrado6);
		
		quadrado7.setSize(25, 20);			quadrado7.setLocation(85, 110);		this.getContentPane().add(quadrado7);
		quadrado8.setSize(25, 20);			quadrado8.setLocation(115,110);		this.getContentPane().add(quadrado8);
		quadrado9.setSize(25, 20);			quadrado9.setLocation(145,110);		this.getContentPane().add(quadrado9);
		
		//botoes do jogo
		//botao de novo jogo
		atualizar = new JButton("Atualizar");
		//tamanho, posicionamento, cores de nome e fundo do botao de novo jogo
		atualizar.setSize(105, 30);
		atualizar.setLocation(25, 150);
		atualizar.setForeground(Color.ORANGE);
		atualizar.setBackground(Color.black);
		//adiciona o botão de novo jogo na tela
		this.getContentPane().add(atualizar);
		//funcionalidade do botao ao ser clicado
		atualizar.addMouseListener(new MouseAdapter(){
			
										public void mouseClicked(MouseEvent e){
											
											String quad1,quad2,quad3,quad4,quad5,quad6,quad7,quad8,quad9;
											
											if(e.getSource() == atualizar){
												quad1 = quadrado1.getText();
												quad2 = quadrado2.getText();
												quad3 = quadrado3.getText();
												quad4 = quadrado4.getText();
												quad5 = quadrado5.getText();
												quad6 = quadrado6.getText();
												quad7 = quadrado7.getText();
												quad8 = quadrado8.getText();
												quad9 = quadrado9.getText();
												
																												
												if((quad1 == quad2) && (quad1 == quad3)){
													JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
												}
												if(quad1 == quad4 && quad1 == quad7){
													JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
												}
												if(quad1 == quad5 && quad1 == quad9){
													JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
												}
												if(quad2 == quad5 && quad2 == quad8){
													JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
												}
												if(quad3 == quad6 && quad3 == quad9){
													JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
												}
											}
											
										}
		});
		
		/*botão limpar */
		restart = new JButton("Restart");
		restart.setSize(100,30);
		restart.setLocation(145,150);
		restart.setForeground(Color.CYAN);
		restart.setBackground(new Color(255,28,174));
		this.getContentPane().add(restart);
		
		restart.addMouseListener(
//				metodo para limpar
				new MouseAdapter(){
				
					public void mouseClicked(MouseEvent e){
						
						JOptionPane.showMessageDialog(null, "Novo Jogo!");
						if(e.getSource() == restart){
							quadrado1.setText("");
							quadrado2.setText("");
							quadrado3.setText("");
							quadrado4.setText("");
							quadrado5.setText("");
							quadrado6.setText("");
							quadrado7.setText("");
							quadrado8.setText("");
							quadrado9.setText("");
						}	
					}
				}
		);
											
	}

}

Eu quero saber fazer as comparações, para dizer se ganhou ou não.

Obrigado desde já.

V

Nossa! Que bagunça! Kkkkkkkkk
Famoso programa "megazord".
Faça uma subdivisão do programa com métodos.

Exemplo rápido:
public class Janela extends JFrame {
	//Declare os componentes aqui (JLabel, JTextField...)
	JTextField txtNome, txtCpf;
	
	Janela(){
		init();
		initComponents();
		addComponents();
	}
	
	//Init para iniciar coisas da própria janela
	private void init(){
		this.setVisible(true);
		this.setSize(280, 250);  
        this.setTitle("Jogo da Velha");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	//Init Components para iniciar posição, tamanho... dos componentes
	private void initComponents(){
		//Inicialize as váriaveis
		txtNome = new JTextField();
		txtCpf = new JTextField();
		
		//Tamanho, posição, visibilidade...
		txtNome.setBounds(0, 0, 100, 20);
		txtNome.setVisible(true);
		
		txtCpf.setBounds(20, 0, 100, 20);
		txtCpf.setVisible(true);
	}
	private void addComponents(){
		this.getContentPane().add(txtNome);
		this.getContentPane().add(txtCpf);
	}
	private boolean checkTextField(){
		if(txtNome.equals("")){ //Se estiver vázio...
			return false;
		}
		if(txtCpf.equals("")){
			return false;
		}
		return true;
	}
}

Enfim. Organize melhor o projeto se já está assim, bem poluído, imagine se você acabar criando algo maior.

Obs.: Comparação do que, não entendi a dúvida.

Obs. 2: Use array
JLabel quadrados[];
quadrados = new JLabel[9];
for(int i = 0; i < quadrados.length; i++){
	quadrados[i].setText("|");
}
Acho que isso funciona, não testei. KKkkkk
Z

eu criei metodos… mas não tava funfando… meu eclipse ficou meio estranho, e estava td em ordem, mas por motivos macabros ele nao tava aceitando… aff…

mas pra mim ele esta bem legivel… kkkk…
até pq eu achei bem melhor assim pra se ler e entender… hehee…
tem doido pra td… kkk…

pois então… eu não entendi muito bem oq vc fez não… eu nunca usei java direito… to fazendo esse jogo ae pq o prof pediu, e eu faltei a aula… aí só ta faltando fazer essa parte lógica pra finalizar 1/3 do jogo kkkkkk

mas valeu cara… amanha eu tento resolver isso… kkk

Z

a comparação que eu me referi era, comparar os valores obtidos de quadrado 1…9 passados como string, onde eu faria uma comparação entre elas pra saber se são iguais ou nao

V

Como funciona o jogo? Quer checar se existe quadrados com valores iguais?

Exemplo:
Tenho 9 quadrados, o programa checa o valor dos 9 quadrados, se 2 quadrados estiverem com o mesmo valor então o programa alerta?

V
public class Test10 {
	public static void main(String[] arg){
		Test10 t = new Test10();
		
		t.setQuadrado();
		System.out.println("Retorno: " + t.checkQuadrado());
	}
	JTextField quadrado[] = new JTextField[9];
	
	public void setQuadrado(){
		for(int i = 0; i < quadrado.length; i++){
			String iString = String.valueOf(i); 
			quadrado[i] = new JTextField();
		}
		quadrado[0].setText("Jaum");
		quadrado[1].setText("Maria");
		quadrado[2].setText("Juam");
		quadrado[3].setText("Joaquim");
		quadrado[4].setText("Juse");
		quadrado[5].setText("Maria");
		quadrado[6].setText("Jose");
		quadrado[7].setText("Jusefa");
		quadrado[8].setText("Josue");
		
		for(int i = 0; i < quadrado.length; i++){
			String iString = String.valueOf(i); 
			System.out.println("Quadrado["+i+"]: " + quadrado[i].getText());
		}
	}
	public boolean checkQuadrado(){
		for(int i = 0; i < quadrado.length; i++){
			for(int j = 0; j < quadrado.length; j++){
				if(i != j){
					if(quadrado[i].getText().equals(quadrado[j].getText())){
						System.out.println("O Quadrado["+i+"] é igual ao Quadrado["+j+"]");
						return false;
					}
				}
			}
		}
		return true;
	}
}

Já dormindo... se o código tiver algo errado pode avisar. O código funciona com array de JTextField e com 2 loops para verificar cada JText com todos os outros.

Edit: mudei o loop ;)

Z

hum… entendi… to quase entendendo 100% agr como q funciona a comparação… o jogo é akele velho jogo da velha, se lembra?

Z

consegui cara, muito obrigado pela ajuda até o momento… :slight_smile:

ficou assim a parte lógica…

if ((quad1.equals(quad2)) && (quad1.equals(quad3))){
	JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}

o equals ajudou, ele substitui o == certo? pelo menos neste caso aí…

douglaskd

ze_rodolfo:
consegui cara, muito obrigado pela ajuda até o momento… :slight_smile:

ficou assim a parte lógica…

if ((quad1.equals(quad2)) && (quad1.equals(quad3))){
	JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}

o equals ajudou, ele substitui o == certo? pelo menos neste caso aí…

a grosso modo: o == compara se um objeto String é igual a outro objeto String. (um mesmo texto pode ser entendido como diferentes)

e o equals compara a string char a char.

public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; }

Z

humm… entendi + ou - agr…

meu código ficou assim… tentei melhorar ele com suas funções, só que quando crio a tela inicial não carrega os botões logo de cara, só se o mouse passar por cima ou maximizar a janela, aí coloquei uma mensagem logo quando o programa abre… kkkk…

Criado 25 de julho de 2013
Ultima resposta 26 de jul. de 2013
Respostas 11
Participantes 3