Bonjour à tous. Svp comment fixer la durée d'affichage d'une image en java?
Bonjour à tous. Svp comment fixer la durée d'affichage d'une image en java?
Salut,
Il va falloir nous en dire plus, parce que ta question est très vague : tu n'indiques même pas si c'est dans une application desktop (à priori, mais ça pourrait être web), ni même l'environnement graphique (Swing, JavaFX, SWT ?), et un peu de contexte fonctionnel ne serait pas du luxe non plus (elle doit s'afficher où cette image ? Au milieu d'une UX existante, toute seule au milieu du bureau, en pleine écran, autrement, bref, où, comment ? Sinon la réponse sera aussi courte que la question : "en gros, le principe est un timeout..."
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Bonsoir.
Au fait je l'ai mis dans un JFRAME. J'ai mis une image en fond de la fenêtre en utilisant la fonction setContentPane. Maintenant je voudrais qu'au bout d'un temps l'image disparaisse. J'ai fait appel Swing, awt, ... au début du programme.
Merci de m'aider
Pour ça tu utiliser un Timer Swing (javax.swing.Timer).
suprimeImage() est une méthode que tu dois écrire et qui va retirer l'image que tu as ajoutée au contentpane. C'est un ActionListener, donc tu fais comme si devais faire un code qui enlève l'image en cliquant sur un bouton par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 long delay = /* le nombre de milliseconde au bout duquel tu veux que l'image disparaisse */ Timer timer = new Timer(delay, e-> supprimeImage()); timer.setRepeats(false); // pour que ça le fasse qu'une seule fois timer.start()
Comme tu as utilisé setContentPane(), il va falloir que tu remplaces l'image, en appelant setContentPane() en lui passant par exemple un JPanel vide (donc juste setContentPane(new JPanel());
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Merci beaucoup. Au fait, le code marche mais l'image ne disparaît pas. Svp je fais comment ?
Montre-moi ton code.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
J'ai mis int comme type à la durée puisque le type long produit une erreur. Voila le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 JFrame fen=new JFrame(); Image icone = Toolkit.getDefaultToolkit().getImage("C:\\Users\\HPPRO\\IdeaProjects\\untitled\\src\\Logo_harold.png"); fen.setIconImage(icone); fen.setSize(619,642); fen.setTitle("Hpera"); fen.setVisible(true); JLabel iMage=new JLabel(new ImageIcon("C:\\Users\\HPPRO\\IdeaProjects\\untitled\\src\\Logo_harold.png")); fen.setContentPane(iMage); fen.setResizable(false); fen.setVisible(true); int delay= 2000; Timer timer=new Timer(delay, e-> fen.setContentPane(new JPanel()) ); timer.setRepeats(false); timer.start();
C'est parce qu'on est obligé de forcer le rafraîchissement ici (je ne sais pas pourquoi sur ce cas Swing ne semble pas le faire automatiquement, alors qu'il le pourrait).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Timer timer=new Timer(delay, e-> { fen.setContentPane(new JPanel()); fen.revalidate(); } );
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Pour des raisons de perfs, on ne recalcule pas automatiquement en cas d'ajout / suppression, car d'autres pourraient suivre et ces calculs complexe deviendraient immédiatement obsolètes. Imagine le calcul si tu dois virer / ajouter 200 composants. 199 calculs de layout inutiles
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager