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 :

Menu et look and feel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut Menu et look and feel
    J'aimerais savoir si il est possible de mettre ce code en place plus facilement sans avoir plusieur fichier MenuItem.class qui se créer

    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
     
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
     
    public class main {
     
    	static Frame frame ;
     
    	public static void main(String[] args) {
    		frame = new Frame() ;
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setVisible(true);
    	}
     
    }
     
    class Frame extends JFrame {
     
    	public Frame() {
    		setSize(400,400);
    		setTitle("Test");
     
    		JMenu Look = new JMenu("Look");
     
    		JMenuBar menuBar = new JMenuBar();
    		setJMenuBar(menuBar);		
     
    		menuBar.add(Look);
     
    		MenuItem pane = new MenuItem(Look);
    	}
     
    }
     
    class MenuItem extends JPanel {
     
    	public MenuItem(JMenu look) {
     
     
    		UIManager.LookAndFeelInfo[] infos = UIManager.getInstalledLookAndFeels();
    		for( UIManager.LookAndFeelInfo info : infos ) {
    			makeButton( look, info.getName(), info.getClassName());
    		}		                                            
     
    	}
     
    	void makeButton(JMenu look, String name, final String Look) {
    		JMenuItem menuItem = new JMenuItem(name);
    		look.add(menuItem);
    		menuItem.addActionListener( 
    			new ActionListener() {
    				public void actionPerformed(ActionEvent event) {
    					try {
    						UIManager.setLookAndFeel( Look );
    						SwingUtilities.updateComponentTreeUI(main.frame);
    					}
    					catch(Exception e) {}
    				}
    			}
    		);
    	}
     
    }
    Le problème de la frame est résolu.
    merci

  2. #2
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    lu,

    au lieu de passer la référence de ton MenuItem, passe ta frame dans

    SwingUtilities.updateComponentTreeUI(MenuItem.this);

  3. #3
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    si tu modifies tes post d'avant, les gens qui vont lire ca vont plus rien comprendre

  4. #4
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    qu'est-ce que tu entends par :
    plusieur fichier MenuItem.class qui se créer
    ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    Quand je compile, le compilateur me créer un fichier MenuItem.class et MenuItem$1.class .
    Pourquoi ?

  6. #6
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    c'est parce que ta classe MenuItem contient une classe anonyme :

    new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    try {
    UIManager.setLookAndFeel( Look );
    SwingUtilities.updateComponentTreeUI(main.frame);
    }
    catch(Exception e) {}
    }

Discussions similaires

  1. [debutant] SWT Look and feel
    Par debutant java dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 23/02/2007, 10h30
  2. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  3. [look and feel] Ou les trouver ?
    Par olive.m dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 08/03/2004, 18h42
  4. Nouveau look and feel
    Par julian_ross dans le forum JBuilder
    Réponses: 6
    Dernier message: 16/12/2003, 15h55
  5. Jbuilder9 Look and feel de borland
    Par wsrudmen dans le forum JBuilder
    Réponses: 6
    Dernier message: 26/06/2003, 18h07

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