Timer et jwindow > deplacement d une fenetre

Contenu du snippet

Ben juste une tite source pour montrer comment utiliser un timer pour deplacer une fenetre

Source / Exemple :


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
public class MoveWin extends JWindow implements ActionListener
{
    private Timer timer;
    private int x,y,currx,curry;
    private JLabel lab;
    
    public MoveWin() 
    {
		// On recupere la taille de l ecran
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		
		// On donne une taille a notre fenetre
		setSize(100,50);
		
		// On definit le point d arrivée
		y = screenSize.height-100;
		
		// On definit le point de départ
		curry = screenSize.height;
		currx = screenSize.width - 105;
		
		// On y place notre fenetre
		setLocation(currx,screenSize.height);
		
		// timer avec un delai de 10 millisecondes
		timer = new Timer(10,this);
		
		// depart du timer
		timer.start();
		
		// label que l on va afficher
		lab = new JLabel();
		lab.setText("<html><font color=red size=4>coucou</font></html>");
		
		// Affichage de la fenetre
		setVisible(true);
		
		// Panel avec une bordure en relief
		JPanel pan = new JPanel();
		pan.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));
    	
    	// Ajout des composants
    	getContentPane().add(pan);
    	pan.add(lab);
    }
    
    /**

  • Méthode qui va gérer les événements du timer
  • /
public void actionPerformed(ActionEvent e) { if (e.getSource() == timer) { // On définit un pas int step = 1; // Si on a pas atteint le point d arrivé if (curry != y) { // On modifie le point courant et on y place notre fenetre curry -= step; setLocation(currx,curry); } else timer.stop(); // sinon on arrete le timer } } public static void main(String[] args) { MoveWin fen = new MoveWin(); } }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.