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

avec Java Discussion :

d'autre type de bouton


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 16
    Points : 16
    Points
    16
    Par défaut d'autre type de bouton
    salut ,
    est-ce qu'il y a d'autre type de bouton en java , comme bouton Windows Vista par exemple pour je le charge dans ma fenêtre.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Il faudrait que tu précises ce que tu entends par "type de bouton".

    Sinon, regarde du côté des look&feels. C'est eux qui gèrent l'aspect des boutons.

    Dernière solution : tu peux transformer un panel pour en faire ton propre bouton

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    oui je veux faire ma propre bouton, mais comment faire exactement ?? il y a un moyen

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Tiens, voilà ce que j'utilise, perso, pour créer mes boutons :

    Cette Classe permet d'ajouter un ActionListener sur un JPanel :

    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
     
    public class PanelAction extends JPanel implements MouseListener {
     
        public PanelAction() {
            super();
            setLayout(new BorderLayout());
            setBackground(Color.WHITE);
        }
     
     
        public void mouseClicked(MouseEvent e) {}
        public void mouseReleased(MouseEvent e) {}
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
     
        public void mousePressed(MouseEvent e) {
            ActionEvent event = new ActionEvent(this,ActionEvent.ACTION_PERFORMED,"ActionPerformed");
            fireActionPerformed(event);
        }
     
        /**
         * Adds an <code>ActionListener</code> to the button.
         * @param l the <code>ActionListener</code> to be added
         */
        public void addActionListener(ActionListener l) {
            listenerList.add(ActionListener.class, l);
            addMouseListener(this);
        }
     
        /**
         * Removes an <code>ActionListener</code> from the button.
         * @param l the listener to be removed
         */
        public void removeActionListener(ActionListener l) {
    	listenerList.remove(ActionListener.class, l);
        }
     
        /**
         * Notifies all listeners that have registered interest for
         * notification on this event type.  The event instance
         * is lazily created using the <code>event</code>
         * parameter.
         *
         * @param event  the <code>ActionEvent</code> object
         */
        protected void fireActionPerformed(ActionEvent event) {
            for(ActionListener l : listenerList.getListeners(ActionListener.class)) {
                l.actionPerformed(event);
            }
        }
     
    }

    et celle-ci te permettra de le contrôler comme un vrai bouton :

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
     
    public class Bouton extends PanelAction implements MouseListener {
     
        ImageIcon icone;
        ImageIcon iconePassage;
        ImageIcon iconeClic;
        String texte;
     
        JLabel iconeAffichee = null;
        JLabel texteAffiche = null;
        boolean rollover = false;
        boolean clic = false;
     
        public Bouton() {
            this(null,null);
        }
     
        public Bouton(String s) {
            this(s,null);
        }
     
        public Bouton(ImageIcon i) {
            this(null,i);
        }
     
        public Bouton(String texte, ImageIcon i) {
            super();
            init(texte,i);
        }
     
        final void init(String texte, ImageIcon i) {
            if(texte != null) { setText(texte);}
            if(i != null) { setIcon(i);}
            if(texte == null && i == null) {setText("");}
        }
     
        public void setText(String texte) {
            this.texte = texte;
            texteAffiche = new JLabel(texte);
            add(texteAffiche);
            revalidate();
            repaint();
        }
     
        public void setIcon(String s) {
            icone = new ImageIcon(s);
            setIcon(icone);
        }
     
        public final void setIcon(ImageIcon i) {
            icone = i;
            if(iconeAffichee!=null) {remove(iconeAffichee);}
            iconeAffichee = new JLabel(icone);
            add(iconeAffichee, BorderLayout.CENTER);
            revalidate();
            repaint();
        }
     
        public void setRolloverIcon(String s) {
            iconePassage = new ImageIcon(s);
            rollover = true;
        }
     
        public void setRolloverIcon(ImageIcon i) {
            iconePassage = i;
            rollover = true;
        }
     
        public void setSelectedIcon(String s) {
            iconeClic = new ImageIcon(s);
            clic = true;
        }
     
        public void setSelectedIcon(ImageIcon i) {
            iconeClic = i;
            clic = true;
        }
     
        public void setRolloverEnabled(boolean b) {
            rollover = b;
        }
     
        public void setSelectionEnabled(boolean b) {
            clic = b;
        }
     
        @Override
        public void mousePressed(MouseEvent e) {
            if(clic) {
                affiche(iconeClic);
            }
            ActionEvent event = new ActionEvent(this,ActionEvent.ACTION_PERFORMED,"ActionPerformed");
            fireActionPerformed(event);
        }
     
        @Override
        public void mouseReleased(MouseEvent e) {
            if(clic) {
                affiche(icone);
            }
        }
     
        @Override
        public void mouseEntered(MouseEvent e) {
            if(rollover) {
                affiche(iconePassage);
            }
        }
     
        @Override
        public void mouseExited(MouseEvent e) {
            if(rollover) {
                affiche(icone);
            }
        }
     
        void affiche(ImageIcon i) {
            remove(iconeAffichee);
            iconeAffichee = new JLabel(i);
            add(iconeAffichee);
            revalidate();
            repaint();
        }
     
    }
    Et voilà ! ^^

    Pour le reste, tu peux regarder du coté des BorderFactory, ou alors créer les impressions de relief directement avec photoshop (et équivalents)

  5. #5
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Pourquoi ne pas utiliser ce constructeur ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 99
    Points : 66
    Points
    66
    Par défaut
    Parce que ce constructeur rend ton rendu dépendant du L&F. Donc soit tu appliques un autre L&F pour ton bouton, soit, tu utilises tes propres images pour qu'il ressemble exactement à ce que tu veux

  7. #7
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    vous pouvez aussi utiliser un JButton tout simplement, en y mettant une image personnalisée. voici un exemple de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    btn_USB = new JButton( new CAdherentActionUSB());
    btn_USB.setPreferredSize( tailleBouton ); // Dimension prédéfinie pour tous mes boutons
    btn_USB.setIcon( new ImageIcon( getClass().getResource( "/LISTE_USB Adherents.png" )));
    btn_USB.setRolloverIcon( new ImageIcon( getClass().getResource( "/LISTE_USB Adherents roll.png" )));
    btn_USB.setPressedIcon( new ImageIcon( getClass().getResource( "/LISTE_USB Adherents press.png" )));
    btn_USB.setToolTipText( "<html>Importe des enfants depuis une liste externe...<br/> ou crée une liste d'exportation des enfants sélectionnés.</html>" );
    btn_USB.setCursor( curseurBouton ); // Curseur prédéfini pour tous les boutons
    btn_USB.setFocusPainted( false ); // Pour éviter l'encadré lors du clic
    btn_USB.setBorderPainted( false );
    btn_USB.setOpaque( false ); // Pour gérer la transparence des images png
    btn_USB.setContentAreaFilled( false ); // Pour ne pas avoir de couleur de fond
    Au final, il reste l'image png.

    @bientôt...
    @ bientôt...

    Salut & @+ sur 3W!

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/04/2019, 18h52
  2. Réponses: 1
    Dernier message: 17/10/2006, 16h01
  3. Pointeur générique vers d'autres types d'objets
    Par LapinGarou dans le forum MFC
    Réponses: 11
    Dernier message: 15/09/2006, 16h48
  4. Objet d'un type initialisé avec un autre type.
    Par Pragmateek dans le forum C++
    Réponses: 28
    Dernier message: 30/03/2006, 20h06
  5. Réponses: 14
    Dernier message: 13/03/2006, 18h49

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