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 :

Comment changer couleur de la barre des titres JinternalFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Comment changer couleur de la barre des titres JinternalFrame
    bonjour,

    j'ai trouvé sur un site la liste des propriétés UIManager

    j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    UIManager manager1=new UIManager();
    manager1.put("InternalFrame.activeTitleBackground", Color.GREEN);
    ou
    manager1.put("InternalFrame.inactiveTitleBackground", Color.GREEN);
     
    manager1.put("InternalFrame.layoutTitlePaneAtOrigin", Color.GREEN);
    comment faire,

    merci

    InternalFrame.activeBorderColor
    InternalFrame.activeTitleBackground
    InternalFrame.activeTitleForeground
    InternalFrame.activeTitleGradient
    InternalFrame.border
    InternalFrame.borderColor
    InternalFrame.borderDarkShadow
    InternalFrame.borderHighlight
    InternalFrame.borderLight
    InternalFrame.borderShadow
    InternalFrame.borderWidth
    InternalFrame.closeIcon
    InternalFrame.closeSound
    InternalFrame.icon
    InternalFrame.iconifyIcon
    InternalFrame.inactiveBorderColor
    InternalFrame.inactiveTitleBackground
    InternalFrame.inactiveTitleForeground
    InternalFrame.inactiveTitleGradient
    InternalFrame.layoutTitlePaneAtOrigin
    InternalFrame.maximizeIcon
    InternalFrame.maximizeSound
    InternalFrame.minimizeIcon
    InternalFrame.minimizeIconBackground
    InternalFrame.resizeIconHighlight
    InternalFrame.resizeIconShadow
    InternalFrame.restoreDownSound
    InternalFrame.restoreUpSound
    InternalFrame.titleButtonHeight
    InternalFrame.titleButtonWidth
    InternalFrame.titleFont
    InternalFrame.titlePaneHeight
    InternalFrame.windowBindings
    InternalFrameUI

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ces valeurs sont à la discrétion du développeur du look & feel, il peut les suivre, comme il peut absolument s'en foutre vu qu'elles ne font pas partie de la spec java.

    Par exemple ce que tu cherches à faire est impossible avec les Look&Feel système.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Comment contourner le problème
    Bonjour,

    j'ai lu que ce que je cherchais à faire n'était pas possible avec la JFrame, je pensais que c'était possible avec la JInternalFrame.

    si je change le look and feel, est-ce que cela devient possible ?

    Y'a-t-il un moyen de contourner le problème ?

    Merci

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Peut être...
    Ou alors tu prends un L&F à thèmes, et dans ce cas tu peux créer ton propre théme, et de fait changer la couleur de la titlebar des JInternalFrame.

    Exemple de L&F thémables:


    • JGoodies (se base probablement sur les mécanismes du L&F Metal fourni par java)
    • Metal qui est fourni par java (et est le L&F par défaut à l'heure actuelle) qui fournit également un système de Theme (classe héritant de MetalTheme, tu peux directement débuter avec la classe OceanTheme en l'occurence, qui correspond au thème par défaut en java 5/6)
    • Substance: Un L&F moderne, probablement le L&F le plus avancé au niveau technique pour java, et proposant un mécanisme de Skins
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Presqu'au bout
    Bonjour,
    Merci pour tes réponses. J’ai trouvé le tuto sun suivant :


    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
     
     
    import javax.swing.plaf.*;
    import javax.swing.plaf.metal.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.*;
    public class TestTheme extends DefaultMetalTheme {
     
     
    	public TestTheme(Color title, Color border){
     
    		primary1 = new ColorUIResource(border); //CADRE FRAME
    		 primary3 = new ColorUIResource(title); //TITRE
    	}
     
        public String getName() { return "Toms"; }
     
        private final ColorUIResource primary1 ;
        private final ColorUIResource primary2 = new ColorUIResource(0, 0, 0);
        private final ColorUIResource primary3 ;
     
     
     
     
        protected ColorUIResource getPrimary1() { return primary1; }
        protected ColorUIResource getPrimary2() { return primary2; }
        protected ColorUIResource getPrimary3() { return primary3; }
     
    }
    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
     
     
     
     
    itemCustomers.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
     
    				//frame.getUIClassID().
    				InternalFrameCustomers frame = new InternalFrameCustomers();
    				  final String LOOKANDFEEL = "Metal";
    				    final String THEME = "Test";
     
     
     
    				JFrame.setDefaultLookAndFeelDecorated(true);
    				 if (LOOKANDFEEL.equals("Metal")) {
    		    		   // if (THEME.equals("DefaultMetal"))
    		    		      // MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme());
    		    		   // else
    		    		    	//if (THEME.equals("Ocean"))
    		    		       MetalLookAndFeel.setCurrentTheme(new OceanTheme());
    		    		   // else 
     
     
    		    		       MetalLookAndFeel.setCurrentTheme(new TestTheme(Color.WHITE, Color.ORANGE));
     
    		    		    try {
    							UIManager.setLookAndFeel(new MetalLookAndFeel());
    							SwingUtilities.updateComponentTreeUI(frame);
     
     
     
    						} catch (UnsupportedLookAndFeelException e1) {
    							e1.printStackTrace();
    						} 
    		    		 }
     
     
    				desk.add(frame);
    				frame.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
     
    				frame.setClosable(true);
    				frame.setMaximizable(true);
    				frame.setResizable(true);
    				ImageIcon monImage=new ImageIcon(getClass().getResource("/Images/Customers.png"));
    				frame.setFrameIcon(monImage);
    				try {
    					frame.setMaximum(true);
    				} catch (PropertyVetoException e1) {
    					e1.printStackTrace();
    				}
    				frame.setVisible(true);
    			}
    		});
    Je modifie les couleurs de ma frame, mais je ne vois pas comment modifier la couleur du texte, la font du texte, la hauteur de la barre de titre. Connaîtrais-tu les propriétés (ou comment les récupérer)

    J’ai essayé ça :


    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
     
     
    public class TestTheme extends DefaultMetalTheme {
     
     
    	public TestTheme(Color title, Color border){
     
    		primary1 = new ColorUIResource(new Color(0, 0, 0)); //CADRE FRAME
    		primary2 = new ColorUIResource(new Color(0, 0, 0));
    		 primary3 = new ColorUIResource(new Color(0, 0, 0)); //TITRE
    		 secondary1 =  new ColorUIResource(new Color(255, 255, 255));
    		 secondary2 =  new ColorUIResource(new Color(255, 255, 255));
    		 secondary3 =  new ColorUIResource(new Color(255, 255, 255));
    		 windowTitleFont = new FontUIResource("", Font.ITALIC, 25);
     
     
    	}
     
     
     
        public String getName() { return "Toms"; }
     
        private final ColorUIResource primary1 ;
        private final ColorUIResource primary2 ;
        private final ColorUIResource primary3 ;
     
     
     
        protected ColorUIResource getPrimary1() { return primary1; }
        protected ColorUIResource getPrimary2() { return primary2; }
        protected ColorUIResource getPrimary3() { return primary3; }
     
        private final ColorUIResource secondary1 ;
        protected ColorUIResource getSecondary1() { return secondary1; }
        private final ColorUIResource secondary2 ;
        protected ColorUIResource getSecondary2() { return secondary2; }
        private final ColorUIResource secondary3 ;
        protected ColorUIResource getSecondary3() { return secondary3; }
     
        private final  FontUIResource windowTitleFont ;
        public FontUIResource getSubTextFont() { return windowTitleFont; }
     
     
     
    }

    Marche pas ?

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu trouveras la plupart des réponse à ça en regardant le code de la classe MetalInternalFrameTitlePane.java que tu trouveras dans le répertoire javax\swing\plaf\metal de l'archive des sources de java fournie avec le JDK (src.zip), et bien sur en explorant les relations avec les autres classes du L&F.

    En ce qui concerne la couleur, elle est définie dans la méthode getWindowTitleForeground du theme Metal appliqué.

    La font est changeable via la key InternalFrame.titleFont qui se trouve dans l'UIManager (à mettre dans l'UIManager sous la forme d'une FontUIResource, et non d'une Font tout court).

    En ce qui concerne la taille de la barre, là pas trop de possibilités, elle dépend du max de la hauteur de la font et de la hauteur des boutons...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    Merci sinoq

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

Discussions similaires

  1. la couleur de la barre des titres
    Par chercheur111 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/02/2011, 12h14
  2. Changer la couleur de la barre des menus
    Par ptinavir dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 02/11/2010, 10h46
  3. [WD14] Changer la couleur de la barre de titre
    Par Bowen dans le forum WinDev
    Réponses: 1
    Dernier message: 29/07/2009, 20h25
  4. [TinyMCE] Changer la couleur de la bande des titres de popup dialog dans l'éditeur tinyMCE
    Par Alexandrebox dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 10/05/2009, 12h16
  5. Réponses: 4
    Dernier message: 22/02/2008, 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