Le fonctionnement de repaint

Description

Le but de cette source est de vous faire comprendre comment fonctionne la méthode repaint. En effet, nous n'appelons que rarement cette méthode, elle est néanmoins appelée très souvent et pas uniquement lorsque l'utilisateur agit sur le programme.

La source propose un JPanel qui lorsque sa méthode repaint est appelée change de couleur aléatoirement. Vous pouvez essayer de réduire la fenêtre, de la faire sortir de l'écran, de faire passer d'autres fenêtres au dessus.

Vous serez peut être surpris du résultat.

La capture associée à la source a été réalisée en faisant passer au dessus de la fenêtre une autre fenêtre.

Source / Exemple :


import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestRepaint extends JPanel {

	private static final long serialVersionUID = -3228250872355821391L;
	private List<Color> couleurs;

	public TestRepaint(){
		couleurs=new ArrayList<Color>();
		couleurs.add(Color.BLACK);
		couleurs.add(Color.BLUE);
		couleurs.add(Color.CYAN);
		couleurs.add(Color.DARK_GRAY);
		couleurs.add(Color.GRAY);
		couleurs.add(Color.GREEN);
		couleurs.add(Color.LIGHT_GRAY);
		couleurs.add(Color.MAGENTA);
		couleurs.add(Color.ORANGE);
		couleurs.add(Color.PINK);
		couleurs.add(Color.RED);
		couleurs.add(Color.WHITE);
		couleurs.add(Color.YELLOW);
	}

	private Color getRandomColor(){
		int indice=(int)(couleurs.size()*Math.random());
		return couleurs.get(indice);
	}

	@Override
	public void paintComponent(Graphics g){
		g.setColor(getRandomColor());
		g.fillRect(0, 0, getWidth(), getHeight());
	}

	public static void main(String[] args){
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(300, 300);
		f.setLocationRelativeTo(null);
		f.add(new TestRepaint());
		f.setVisible(true);
	}

}

Codes Sources

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.