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 :

Fonctionnement des JDialog sur Mac Os


Sujet :

AWT/Swing Java

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1
    Par défaut Fonctionnement des JDialog sur Mac Os
    Bonjour,

    J'essaie de faire tourner une application swing sur mac os. Cette application tourne déjà sur linux et windows.

    J'utilise des JDialog pour certaines fenêtres pour ne pas avoir les boutons minimiser ou maximiser la fenêtre.

    Or sur MacOs les boutons apparaissent quand même. J'ai forcé le lookAndFeel java par défaut à Metal, mais rien n'y fait j'ai toujours les boutons.

    Est-ce que quelqu'un a une idée pour les faire disparaître des JDialog.

    Pour le moment seul la ligne de code dialog.setUndecorated(true); a fonctionné, mais je n'ai plus non plus de titre sur ma fenêtre et ce n'est pas ce que jsouhaite.

    Merci pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2022
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2022
    Messages : 49
    Par défaut
    as-tu pensé à

    bouton.setVisible(false) .

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 899
    Billets dans le blog
    54
    Par défaut
    Merci d’éviter de réveiller des sujets qui dorment depuis plusieurs années.


    On parle bien ici des boutons de contrôle de la fenêtre qui sert a afficher une boite de dialogue. Sur Windows (et Linux) les boutons apparaîtront ou disparaîtront en fonction du fait que le dialogue soit redimensionnable, mais sur macOS ils sont toujours presents meme si désactivés.


    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
    package test.dialog;
     
    import javax.swing.*;
    import java.awt.*;
     
    public class Main {
        public static void main(final String... args) {
            SwingUtilities.invokeLater(Main::launchAtEDT);
        }
     
        private static void launchAtEDT() {
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
                     UnsupportedLookAndFeelException ex) {
                ex.printStackTrace();
            }
            final var button = new JButton("Click me!");
            final var toolBar = new JToolBar();
            toolBar.setFloatable(false);
            toolBar.add(button);
            final var frame = new JFrame("Test");
            button.addActionListener(event -> {
                final var dialog = createDialog(frame);
                dialog.setVisible(true);
            });
            frame.setLayout(new BorderLayout());
            frame.add(toolBar, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setMinimumSize(new Dimension(800, 600));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
     
        private static JDialog createDialog(JFrame parent) {
            final var closeButton = new JButton("Exit");
            final var toolBar = new JToolBar();
            toolBar.setFloatable(false);
            toolBar.add(Box.createHorizontalGlue());
            toolBar.add(closeButton);
            final var label = new JLabel("This is a dialog box");
            final var dialog = new JDialog(parent, "Dialog");
            closeButton.addActionListener(event -> dialog.setVisible(false));
            dialog.setLayout(new BorderLayout());
            dialog.setModal(true);
            dialog.setResizable(false);
            dialog.add(label, BorderLayout.CENTER);
            dialog.add(toolBar, BorderLayout.SOUTH);
            dialog.setSize(300, 200);
            dialog.setLocationRelativeTo(parent.getContentPane());
            return dialog;
        }
    }
    Nom : dialog1.jpg
Affichages : 11
Taille : 25,9 Ko Nom : dialog2.jpg
Affichages : 10
Taille : 31,4 Ko

    Et non il n'est pas possible de supprimer ces boutons facilement depuis du code Java.
    Il est peut-être possible de le faire en utilisant une lib native capable de récupérer un handle / pointeur sur la fenêtre native utilisée par Swing (aucune idée sur comment faire sur macOS).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Upload et gestion des accents sur Mac
    Par Perrichon dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2013, 12h08
  2. Couleur des JButton sur Mac
    Par HNoury dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 07/09/2009, 18h51
  3. Fonctionnement de Opendirectory sur MAC
    Par Elmariachi dans le forum Apple
    Réponses: 1
    Dernier message: 29/03/2007, 19h12
  4. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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