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 :

bordure arrondie dans un JPanel


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 52
    Points
    52
    Par défaut bordure arrondie dans un JPanel
    Bonjour,

    Existe-t-il une méthode prévu dans les API de SUN pour créer une bordure aux coins arrondis dans un JPanel ?

    Je ne sais faire qu'une bordure avec une cadre a angle droit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Border line = BorderFactory.createLineBorder(Color.BLACK, 1);
            TitledBorder panelBorder = BorderFactory.createTitledBorder(line, " Mon titre ");
            panel.setBorder(panelBorder);

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Il n'y a rien de natif à ce que je crois.
    Mais rien ne t'empêche de créer ton propre Border qui aurait des bords arrondis.

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Voici une telle classe :
    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
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Insets;
    import java.awt.RenderingHints;
    import javax.swing.border.Border;
     
     
     
     
    public class RoundedBorder implements Border {  
     
    	private Color couleur;
    	private int largeurArc;
    	private int hauteurArc;
     
     
     
     
    	public RoundedBorder(Color couleur, int largeurArc, int hauteurArc)  {
    		this.couleur = couleur;
    		this.largeurArc = largeurArc;
    		this.hauteurArc = hauteurArc;
    	}  
     
     
     
     
     
    	public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)  {
            g.setColor(this.couleur);//ou une autre couleur que tu peux rendre paramétrable
            int adjustXY = 1;//pour ajuster le dessin en x et y
            int adjustWH = 2;//idem pour width et height
            //pour eviter les escalier sur l'arrondi
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g2.drawRoundRect(x+adjustXY, y+adjustXY, width-adjustWH, height-adjustWH, this.largeurArc, this.hauteurArc);
    	}  
     
     
     
    	public Insets getBorderInsets(Component c)  {  
    		return new Insets(0,0,0,0); 
    	}  
     
     
    	public boolean isBorderOpaque()  {
    		return true; 
    	} 
     
    }

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 68
    Points : 45
    Points
    45
    Par défaut re
    bonjour a tous,
    désolé de déterrer ce topic, mais j'ai une question supplementaire

    je souhaite pouvoir colorer mon JPanel.
    je le fait pour le moment par la méthode setBackground de mon JPanel.
    la couleur est effectivement appliquée, mais elle s applique aussi a l'exterieur de la bordure (surtout visible aux arrondis)

    ma question est donc la suivante, avez vous une idée de comment redéfinir cette méthode setBackground ?

    je vous remercis,
    size

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/11/2005, 18h03
  2. [Java2D] mouseDragged dans un JPanel
    Par Copps dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 01/08/2005, 15h24
  3. Dessiner dans différents JPanels
    Par N@sH dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/05/2005, 15h39
  4. [JPanel] parcours d'objets dans un JPanel
    Par fleur1234 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 17/01/2005, 13h24
  5. Dessiner dans un JPanel
    Par Oliveuh dans le forum Composants
    Réponses: 5
    Dernier message: 19/07/2004, 12h13

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