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égrer un JLabel à un BufferedImage


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut Intégrer un JLabel à un BufferedImage
    Bonjour, j'ai un programme qui affiche une fenêtre avec une zone graphique sur laquelle je peux tracer des lignes, j'aimerais y insérer des zones JLabel à une position contrôlée, auriez vous une idée ?

    voici 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
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import javax.swing.*;
    import java.util.*;
     
    public final class Ardoise{
     
        // des couleurs
        public static final Color NOIR = Color.BLACK;
        public static final Color BLANC = Color.WHITE;
     
        // taille de la fenetre par defaut
        private static final int TAILLE = 600;
        private static int longueur  = TAILLE;
        private static int hauteur = TAILLE;
     
        private static final double BORDURE = 0.07; // 5% de la bordure
        private static double xmin, ymin, xmax, ymax;
     
        // diametre de la mine
        private static final double diametreMine = 0.005;
     
        private static BufferedImage offscreenImage, onscreenImage;
        private static Graphics2D offscreen, onscreen;
        private static JFrame frame;
     
        static{ 
    		init(); 
        }
     
        private static void init() {
            if (frame != null) frame.setVisible(false);
            frame = new JFrame();
            offscreenImage = new BufferedImage(longueur, hauteur, BufferedImage.TYPE_INT_ARGB);
            onscreenImage  = new BufferedImage(longueur, hauteur, BufferedImage.TYPE_INT_ARGB);
            offscreen = offscreenImage.createGraphics();
            onscreen  = onscreenImage.createGraphics();
            setXscale(0.0,1.0);
    		setYscale(0.0,1.0);
            offscreen.fillRect(0,0,longueur,hauteur);
            offscreen.setColor(NOIR);
    		offscreen.setStroke(new BasicStroke((float) diametreMine));
     
            ImageIcon icon = new ImageIcon(onscreenImage);
            JLabel draw = new JLabel(icon);
     
            frame.setContentPane(draw);
            frame.setResizable(false);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setTitle("Ardoise");
            frame.pack();
            frame.requestFocusInWindow();
            frame.setVisible(true);
        }
     
        public static void setXscale(double min, double max) {
            double size = max - min;
            xmin = min - BORDURE * size;
            xmax = max + BORDURE * size;
        }
     
        public static void setYscale(double min, double max) {
            double size = max - min;
            ymin = min - BORDURE * size;
            ymax = max + BORDURE * size;
        }
     
        private static double  scaleX(double x){ 
    	return longueur  * (x - xmin) / (xmax - xmin); 
        }
     
        private static double  scaleY(double y){ 
    	return hauteur * (ymax - y) / (ymax - ymin); 
        }
     
        public static void line(double x0, double y0, double x1, double y1) {
            offscreen.draw(new Line2D.Double(scaleX(x0), scaleY(y0),scaleX(x1), scaleY(y1)));
            show();
        }
     
        public static void show() {
    		onscreen.drawImage(offscreenImage, 0, 0, null);
            frame.repaint();
        }
    }

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu peux afficher directement du texte dans ton image, sans passer par un JLabel.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    merci, j'ai trouvé la méthode drawString, c'est très joli

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

Discussions similaires

  1. intégrer police
    Par mat10000 dans le forum Flash
    Réponses: 30
    Dernier message: 14/11/2007, 13h18
  2. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  3. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  4. Intégrer OpenGL et HTML
    Par the_ricou dans le forum OpenGL
    Réponses: 10
    Dernier message: 14/02/2004, 10h18
  5. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52

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