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 :

Avoir le look Mac Leopard


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Par défaut Avoir le look Mac Leopard
    Bonjour

    Débutant en java et Netbeans, je m'entraine a vouloir me faire une interfacce pour un programme

    Ayant bien entendu pas mal de difficultés.

    Je souhaiterai avoir pour mes fenetres le look Mac Léopard (voir image)

    Quelle type de fenetre employer ?
    ou comment modifier la barre du haut pour l'élargir et pouvoir y posser des boutons ou autre

    merci
    Images attachées Images attachées  

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il te faut deux choses:
    1. Mettr en place le Look and feel Système ( UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
    2. Pour mettre en place le style "Unified Toolbar" correspondant à l'apparence d'iTunes il faut appliquer la client property apple.awt.brushMetalLook à true pour le JRootPane de la JFrame.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       maFrame.getRootPane.puClientProperty("apple.awt.brushMetalLook","true");
    Celà ne marchera que sous Leopard et n'aura aucune incidence pour les autres OS, de même pour l'histoire du menu (tout l'avantage des clientProperties)


    UNe liste des clientProperties spécifiques à apple: http://developer.apple.com/technotes/tn2007/tn2196.htm
    (il en existe beaucoup moins pour les look and feels Linux ou windows.

  3. #3
    Membre éclairé Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Par défaut
    Ou dois je coder ca ?

    et quel type de fenetre prendre ?

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah une JFrame, je ne comprends pas trop les sens de ta question en fait

  5. #5
    Membre éclairé Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Par défaut
    quand je met ton code au début


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public FMain(SingleFrameApplication app) 
        {
            // this.getRootPane.puClientProperty("apple.awt.brushMetalLook","true");
     
            super(app);
            getRootPane.puClientProperty("apple.awt.brushMetalLook","true");
            System.setProperty("com.apple.macos.useScreenMenuBar", "true");
    ca compile pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    symbol  : variable getRootPane
    location: class ancestrologie.FMain
            getRootPane.puClientProperty("apple.awt.brushMetalLook","true");
    1 error
    BUILD FAILED (total time: 0 seconds)
    dur de débuter en java
    merci de ton aide

  6. #6
    Membre éclairé Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Par défaut
    en fait, le bon code c'etait ca

    this.getRootPane().putClientProperty("apple.awt.brushMetalLook","true");

    mais ca change pas grand chose à ma fenetre
    Images attachées Images attachées  

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah il faudrait peut être penser à également mettre la propriété qui met le menu à la bonne place (c'est a dire plus dans l'application, mais dans la barre de menu en haut).

    Donc il faut mettre en place le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setProperty("com.apple.macos.useScreenMenuBar", "true");
    Avant de créer ta JFrame

  8. #8
    Membre éclairé Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Par défaut
    ca

    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
    import javax.swing.UIManager;
     
    /**
     * The main class of the application.
     */
    public class AncestrologieApp extends SingleFrameApplication {
     
        /**
         * At startup create and show the main frame of the application.
         */
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     
        @Override protected void startup() {
            System.setProperty("com.apple.macos.useScreenMenuBar", "true");
     
            show(new FMain(this));
        }
    me donne erreur que je ne sais pas interpreter

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    1 error
    BUILD FAILED (total time: 0 seconds)


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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    S'il y a une erreur, c'est qu'il y a un message d'erreur.
    Là je sais quelle est l'erreur, mais prends l'habitude de donner le message d'erreur correspondant au problème.

    Dans ton cas la méthode setLookAndFeel de l'UIManager peut déclencher un certain nombre d'exceptions (cf java) et il faut les catcher.

  10. #10
    Membre éclairé Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Par défaut
    OK

    merci c est bon, j ai plus d erreur

    me reste plus que le problème du titre, que j arrives en résoudre en partie en restant dans NetBeans, mais si je lance le jar, ça ne marche plus

    je met ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Xdock:name="Ancestrologie"
    dans les param du run

    mais comment remplacer ça par une ligne de code, comme pour les menus ?

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Malheureusement pour toi les options -X correspondent à des options non standard de démarrage de la JVM, et donc ne sont pas applicables depuis le code.

    Ton problème peut être résolu autrement, dans la forme livrable de ton appli sous mac, tu proposera probablement un fichier .app (histoire d'être bien intégré à l'OS). Ce genre d'options sont faites pour être utilisées au lancement de la JVM, or le .app (ou un éventuel .exe sous windows) a pour but de lancer la JVM de fait.

    Donc direction par là: http://developer.apple.com/documenta...8447-TPXREF120

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

Discussions similaires

  1. Leonardi sous Mac Leopard
    Par kaporal13 dans le forum W4 Express
    Réponses: 2
    Dernier message: 11/05/2009, 15h35
  2. Réponses: 3
    Dernier message: 19/01/2009, 20h44
  3. Réponses: 2
    Dernier message: 10/12/2008, 15h05
  4. [Ubuntu] avoir l'adresse MAC avec l'adresse IP.
    Par cmoibal dans le forum Réseau
    Réponses: 7
    Dernier message: 03/04/2008, 19h21

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