IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

Splash screen transparent


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Splash screen transparent
    Bonjour,

    J'ai deja crèe un spash screen pour mon programme java en afficher une image dans un JPanel mais je n'arrive pas a gérer la transparence du fichier gif que j'affiche.
    Les bords reste carré tandis qu'il devrais etre arrondie...
    En gros mon code de ma classe SpalshScreen donne ca ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ImageIcon splashImage = new ImageIcon("image.gif");
    setUndecorated(true);
    getRootPane().setWindowDecorationStyle(JRootPane.NONE); 
    JLabel l = new JLabel(splashImage)
    getContentPane().add(l, BorderLayout.CENTER);
    pack();
    Comment faire pour que l'image soit afficher avec la gestion de la transparence....?

    [ Modéré par Viena ]
    Ajout d'un tag dans le titre : plus un titre est précis, plus les réponses le sont.

    Les Règles du Forum

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 140
    Points
    140
    Par défaut
    Tu peux essayer de faire un setOpaque(false) sur ta JFrame, mais je suis pas sûr que ce que tu cherches à faire soit possible en Java ?? Sinon, à tout hasard, tu peux chercher du côté des overlays, mais cela n'est peut-être également pas possible en Java...

  3. #3
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Malheureusement il n'y a pas de solution portable et propre pour faire ca.
    Si tu veux travailler que sur win, il existe un package (par contre me rappeles plus du nom) pour faire ca. Mais ton code ne fonctionnera plus ou mal sur les autres plateformes.
    Un solution tres lourde consiste à capturer l'ecran ou va s'afficher ta fanêtre, et ensuite t'en servir comme fond de ta fenêtre. Mais c'est pas simple à géré, a chaque mouvement de la fenêtre , redimensionement, faut recapturé l'écran, aussi si la fenêtre pert puis retouve le focus. Pour se faciliter la vie, utilises les mouvements différés, juste le cadre qui se deplaces et pas la fenêtre.
    J'espére qu'un jour sortira un package portable
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 73
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Je propose :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    import java.awt.AWTException;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.Robot;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
     
    /**
     * Classe Ex1
     */
    public class Ex1 extends JFrame{
    	private ImageIcon image=null;
    	private int couleurs[][];
     
    	public Ex1(ImageIcon image){
    		super("");
    		this.image=image;
    		setResizable(false);
    		setUndecorated(true);
    		int width=image.getIconWidth();
    		int height=image.getIconHeight();
    		setSize(width,height);
    		setLocation(300,300);
     
    		couleurs=new int[width][height];
    		try {
    			Robot robot = new Robot();
    			for(int x=0;x<width;x++){
    				couleurs[x]=new int[height];
    				for(int y=0;y<height;y++){
    					couleurs[x][y]=robot.getPixelColor(300+x,300+y).getRGB();
    				}
    			}
    		} catch (AWTException e1) {
    			e1.printStackTrace();
    		}
     
    		setBackground(Color.WHITE);
    		setVisible(true);
    		try {
    			Thread.sleep(3000);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		dispose();
    	}
     
    	/* (non-Javadoc)
    	 * @see java.awt.Component#paint(java.awt.Graphics)
    	 */
    	public void paint(Graphics g) {
    		super.paint(g);
    		Graphics2D gc=(Graphics2D)g;
    		Image imageBuffer=createImage(couleurs.length,couleurs[0].length);
    		Graphics buffer=imageBuffer.getGraphics();
    		for(int x=0;x<couleurs.length;x++){
    			for(int y=0;y<couleurs[x].length;y++){
    				buffer.setColor(new Color(couleurs[x][y]));
    				buffer.drawLine(x,y,x,y);
    			}
    		}
    		buffer.drawImage(image.getImage(),0,0,this);
    		gc.drawImage(imageBuffer,0,0,this);
    	}
     
    	public static void main(String args[]) {
    		new Ex1(new ImageIcon("toto.gif"));
    	}
     
    }
    Par contre je suis pas sur que cela soit portable...

    Cordialement,

    PS : N'oublie pas le tag[resolu], quand ton probleme est resolu... Merci...
    PS : N'oublie pas le tag [Résolu] (en cliquant sur http://pouiller.eclipse.free.fr/avatar/resolu.gif), si ton problème est résolu...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour votre aide, tout marche nickel maintenant comme je le voulais !

  6. #6
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Oui, c'est la version cpture d'écrans. Le pb c'est si jamais on ouvre une autre fenêtre, en passant audessus il va ignorer cette nouvelle fenêtre.
    Au fait au lieu capturer tous les points de couleur autant prendre un image entiére, ca sera un peu plus rapide.
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire un splash screen pour son application?
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/04/2007, 14h28
  2. affichage texte style splash screen
    Par scorbo dans le forum MFC
    Réponses: 4
    Dernier message: 13/06/2004, 12h03
  3. [DX9] Splash Screen
    Par delire8 dans le forum DirectX
    Réponses: 6
    Dernier message: 03/06/2004, 10h30
  4. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 19h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo