Olá pessoal,
Seguinte, preciso que uma aplicação faça com que um componente (um JLabel) movimente-se horizontalmente seguindo determinadas coodernadas, isso em tempo de execução. Por exemplo: o JLabel inicia no lado esquerdo e vai caminhando até o lado direito.
Alguém sabe como fazer ou tem alguma dica?
Vlw
cara… ai ta um codigo bem rapido q eu fiz, mas a label se movimenta muito rapido, entao achonselho vc modificar o codigo colocando umas threads e dando uns “sleeps” dentro do “for”, faznedo assim com que ela se movimente mais de vagar.
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* @author Fernando Scalia
*
* Olha ai, acho q e o que vc esta querendo.
*/
public class Movimento extends JFrame{
//jlabel; variavel que vai fazer a movimentacao; jbutton que vai startar a movimentacao.
private JLabel label = new JLabel("FERNANDO");
int posicao;
JButton botao = new JButton("inicio");
public Movimento(){
//parametros do frame principal
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 250);
this.setVisible(true);
this.getContentPane().setLayout(null);
//parametros da jlabel
label.setBounds(posicao,5,90,30);
this.getContentPane().add(label);
//parametros do botao
botao.setBounds(5,95,50,50);
this.getContentPane().add(botao, null);
//acao do botao
botao.addMouseListener (new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// Chamada ao Procedimento
try{
for (int i = 0;i < 150; i++){
posicao++;
label.setBounds(posicao,5,90,30);
}
}catch(Exception ex){ex.printStackTrace();}
}});
this.show();
}
public static void main(String[] args) {
Movimento mov = new Movimento();
}
}
Valeu fer_scalia, era isso mesmo que eu precisava. O solucionador do meu problema é o método setBounds. Obrigado.