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

AWT/Swing Java Discussion :

Intégration de Gradient multicouleur dans un (j)panel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Ecosmose
    Homme Profil pro
    Archi SI / Soft / Réseau / SCADA /Automate
    Inscrit en
    Janvier 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Archi SI / Soft / Réseau / SCADA /Automate
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 170
    Par défaut Intégration de Gradient multicouleur dans un (j)panel
    Bonjour !

    J'ai cherché une technique pour créer un gradient de PLUSIEURS couleurs comme le montre l'image ci-dessous...

    J'ai aussi essayé de trouver le code source de JColorChooser afin de récupérer la fonction qui fabrique ce dégradé qui se situe dans l'onglet HSB de JColorChooser...n'aboutit que sur des constantes (systèmes JVM je pense)

    je pense qu'une solution serait de superposé plusieurs zones de gradient qui n'aurait qu'une seule couleur 'vive' et se dissiperait vers la meme couleur mais transparente...

    Mais bon puisque JAVA est open source il y a surement un moyen de trouver cette fonction non ?

    j'ai préféré poster mon interrogation avant de commencer à coder...j'ai bien fait je pense, seulement je suis un peu honteux de la poster avant mêm d'avoir acquérit les techniques de gradient...
    je vais donc étudier ca kle temps de vos réponse...merci
    Images attachées Images attachées  

  2. #2
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    Java 6 (Mustang) a tout ce ke ta besoins :-)

    teste ca et tu vas voir
    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
     
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.LinearGradientPaint;
    import java.awt.EventQueue;
    import java.awt.geom.Point2D;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 16-mars-2007
     */
    public class LinearGradientPainterTesting extends JPanel {
     
        Point2D start = new Point2D.Float(0, 0);
        float[] dist = {0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
        Color[] colors = {Color.YELLOW, Color.ORANGE, Color.RED, Color.MAGENTA, Color.BLUE, Color.BLACK};
        LinearGradientPaint paint = null;
     
        protected void paintComponent(Graphics g) {
            Graphics2D g2d;
            if (g instanceof Graphics2D) {
                g2d = (Graphics2D) g;
            } else {
                System.out.println("Error");
                return;
            }
     
            paint = new LinearGradientPaint(start, new Point2D.Float(0, getHeight()), dist, colors);
     
            g2d.setPaint(paint);
            g2d.fillRect(0, 0, getWidth(), getHeight());
        }
     
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    JFrame myFrame = new JFrame("Linear Gradient Painter");
                    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    myFrame.add(new LinearGradientPainterTesting());
                    myFrame.setSize(640, 480);
                    myFrame.setVisible(true);        
                }
            });
        }
    }
    LinearGradientPaint & RadialGradientPaint ont ete ajouter pour faire ce que tu demande :-)

  3. #3
    Membre expérimenté
    Avatar de Ecosmose
    Homme Profil pro
    Archi SI / Soft / Réseau / SCADA /Automate
    Inscrit en
    Janvier 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Archi SI / Soft / Réseau / SCADA /Automate
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 170
    Par défaut
    Yes excellent !!!!!!!!!!!!!!!!

    je ne savais que JAVA 6 avait intégré de tel outils !!! (au fait qu'st ce que mustang ? version du JDK ?)

    Ou as tu trouvé ces infos sur les outils dispo de JAVA 6 (veille technologique ? expérience ?)

    y as juste une syntaxe qui m'interpelle c'est les 'f' dans l'initialisation du tableau des distance ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dist = {0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
    sinon merci bbclone c'est exactement ce que je cherchais...

    En ce qui concerne les sources des objets graphiques ou autres est il possible d'obtenir leurs codes sources ? (je pense que oui car c'est de l'open source) mais je n'ai pas réussi à trouver celui du gradient de JColorChooser..peut etre ouvre t il une image mais cela m'étonnerait...

  4. #4
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    mustang = nom de code de java 6 (comme tiger c'etait le nom de code de java 5, dolphin java 7, merlin java 1.4...)

    j'utilise java 6 depuis que j'ai commencer a apprendre java.
    pendant son developement y'avais souvent des blogs maj sur les nouveaux features disponible :-)
    sinon, y'a aussi la javadoc.
    http://java.sun.com/javase/6/docs/ap...ientPaint.html

    pour les 'f', l'api demande un tableau de float. je sais pas moi pourquoi ils on pris float et pas des double :-S

    pour le source des classe, quand tu instale un jdk il te propose d'installer les sources ou pas. si tu as installer les source tu as un gros fichier src.zip dans ton $jdk_home

  5. #5
    Membre expérimenté
    Avatar de Ecosmose
    Homme Profil pro
    Archi SI / Soft / Réseau / SCADA /Automate
    Inscrit en
    Janvier 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Archi SI / Soft / Réseau / SCADA /Automate
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 170
    Par défaut
    Excellente réponse décidemment tu cadres bien mes interrogations...

    merci pour le tuyau JDK je cherchais en effet de ce coté là...

    le 'f' c'est donc une précision de type qui impose les floats...peut etre est ce pour la gestion des valeurs infinis (NaN) je ne sais pas si les double savent le gérer...

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    J'ai aussi utulisé le linearGradientPaint, il marche très bien quand je lance l'appli avec netbean, mais quand je lance le .jar, il plante sur le linearGradientPaint.
    Est ce vous savez pourquoi ?
    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/02/2006, 15h12
  2. Réponses: 11
    Dernier message: 30/01/2006, 16h26
  3. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  4. Intégration d'un SDK dans Visual Basic
    Par <-NicO-> dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/02/2005, 22h53
  5. Réponses: 7
    Dernier message: 30/11/2004, 14h54

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