Evento com JTextField - ultilizando uma imagem

Gente tou com problemas com textfield preciso fazer um jogo em que a imagem se movimente de acordo com q foi escrito no campo do textfield, tipo se eu escrever: frente a imagem anda p frente e botar esquerda ela vai p esquerda ja tentei de tojo geito fazer se mover mais nao consigo!

se alguem tiver um exemplo por favor me amostree q estou muito aperriado tentando fazer isso!!
:shock: :shock: :shock: :shock: :shock:

obs: os movimentos q pode fazer eh:cima,baixo,direita,esquerda.

desde ja agradeço a ajudaa!

Essa imagem está em algum componente, como JLabel? Se sim, você está tentando alterar a posição desse componente? Se estiver utilizando um LayoutManager, esse pode influenciar no momento de mover o componente.

eu ainda nao tenho conhecimento de LayoutManager! nao dfaço ideia d q seja!
aqui eu estava tenando compara o q era escrito com uma string para poder andar so q nao tive exito!

cara to sem saber o q fazer! :shock:

Posta teu código.

aqui esta o codigo:

import java.awt.Color;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

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

public class ComEvento extends JFrame{
ImageIcon danc;
JLabel danc2;
int posX=0, posY=0;
JTextField String [];

public ComEvento(){
	super("ABC");
	setSize(500,500);
	setLocationRelativeTo(null);
	setVisible(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	getContentPane().setBackground(Color.BLUE);
	setLayout(null);
	
	danc = new ImageIcon(getClass().getResource("formiga.png"));
	 danc2 = new JLabel(danc);
	//danc2.setBounds(10,10,danc.getIconHeight(),danc.getIconWidth());
	add(danc2);
	
	danc2.setBounds(posX, posY, 50, 50);
	add(danc2);
	
	JTextField texto = new JTextField("Digite o texto!");
	texto.setSize(20,30);
	add(texto);
	texto.getText();
	String texto1 = texto.getText();
	texto.setBounds(300,300,100,100);
	texto.addFocusListener(new FocusAdapter() {
		public void focusLost(FocusEvent e) { 
			if(texto1=="frente();"){
				posY--;
				danc2.setLocation(posX, posY);
			}
        }}  );
	

	
}


public static void main(String[] args) {
	new ComEvento();

}

}

obs: descupaê a mau organização do codigoo! :smiley:

  1. Seu código possui erro de sintaxe. Veja a linha que contém:
if( texto1 == "frente();" ){

Você está acessando uma variável (texto1) que não pertence ao escopo, ou seja, ela exista dentro do construtor ComEvento, mas não na implementação do ouvinte focusLost.

  1. Você sabe exatamente o que faz o operador “==”? Ele não compara o conteúdo de objetos, mas sim suas referências. Ele apenas funciona para igualar conteúdo quando tratar-se de tipos primitivos, como int, double, char…

  2. Tem certeza que utilizar focusListener é a melhor escolha? Não seria melhor combiná-lo com o pressionamento da tecla ENTER, por exemplo? Ou então criar um botão para isso?

1 - a do “==” eu reconheço q foi erro meu!
2 - ateh agora na faculdade so tive conhecimento desse “focusListener”, e eu queria criar um botao q quando eu o apertace ele executaria a ação na imagem.

no caso o q eu tenho q ultilizar para fazer isso?

tem como tu mandar um exemplo?

vlw

[code]package clienteditor;

import java.awt.Color;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
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.JTextField;

public class ComEvento extends JFrame{
ImageIcon danc;
JLabel danc2;
int posX=0, posY=0;
JTextField String [];

public ComEvento(){
    super("ABC");
    setSize(500,500);
    setLocationRelativeTo(null);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    getContentPane().setBackground(Color.BLUE);
    setLayout(null);

    JButton button = new JButton( "Clique Aqui" );
    button.setBounds( 410, 300, 100, 40);
    button.addMouseListener( new MouseListener(){
        public void mouseClicked(MouseEvent e) {
        }

        public void mousePressed(MouseEvent e) {
        }

        public void mouseReleased(MouseEvent e) {
            System.out.println( "mouseReleased:" + e );
            updateLabel();
        }

        public void mouseEntered(MouseEvent e) {
        }

        public void mouseExited(MouseEvent e) {
        }
    } );
    this.add( button );

    //danc = new ImageIcon( null );
    danc2 = new JLabel( "Label" );
    //danc2.setBounds(10,10,danc.getIconHeight(),danc.getIconWidth());
    add(danc2);

    danc2.setBounds(posX, posY, 50, 50);
    add(danc2);

    JTextField texto = new JTextField("Digite o texto!");
    texto.setSize(20,30);
    add(texto);
    texto.getText();
    String texto1 = texto.getText();
    texto.setBounds(300,300,100,100);
    texto.addFocusListener(new FocusAdapter() {
        public void focusLost( FocusEvent e ){
            System.out.println( "focusEvent:" + e );

            updateLabel();
        }
    });
}

private void updateLabel(){
    this.danc2.setLocation( this.danc2.getLocation().x + 10, this.danc2.getLocation().y + 10);
}

public static void main(String[] args) {
    new ComEvento();
}

}[/code]

Nesse código, inclui um JButton e inclui um método que é responsável por apenas atualizar a posição do JLabel. Cada vez que o usuário “solta” o botão do mouse, ele trata o evento chamando o método “updateLabel()”.