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

Composants Java Discussion :

sous-classe de JPanel ou de JSpinner ?


Sujet :

Composants Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut sous-classe de JPanel ou de JSpinner ?
    Bonjour,

    je développe actuellement un calendrier. Je m'appuie sur les sources d'un calendrier trouvé sur le net.

    L'auteur a développé pas mal de classe dont la classe JSpinField. Cette classe utilise un JSpinner et accepte une valeur minimale et maximale.
    L'auteur, lui, a défini cette classe comme étant une sous-classe de JPanel.
    Moi j'ai plutôt envie de la mettre comme sous-classe de JSpinner.
    D'après vous ?
    Quand définit-on une sous-classe de JPanel ?
    Quand on va définir une classe regroupant plusieurs composant ? C ça ?
    Voici le code de la classe si ça peut aider...

    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
     
    public class JSpinField extends JSpinner implements ChangeListener{
     
        int min=0;
        int max=0;
     
        public JSpinField() {
    	    this(0,Integer.MAX_VALUE);
        }
     
        /** Creates a new instance of MenuDeroulant */
        public JSpinField(int mini,int maxi) {
            min=mini;
            max=maxi;
     
            setPreferredSize(new Dimension(100,20));
            addChangeListener(this);
            setValue(new Integer(min));
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            JFrame menuDerlt=new JFrame("Menu Déroulant");
            menuDerlt.getContentPane().add(new JSpinField(2,10));
            menuDerlt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            menuDerlt.pack();
            menuDerlt.show();
        }
     
        public void stateChanged(ChangeEvent e) {
            SpinnerNumberModel model =(SpinnerNumberModel) getModel();
    	int value = model.getNumber().intValue();
            if (value<min) {
     
                setValue(new Integer(min));
            }
            if (value>max) {
                setValue(new Integer(max));
            }
        }
    Merci pour vos réponses.
    Ciao

  2. #2
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    A mon avis, dans ce cas y a même pas vraiment besoin de construire une classe, si c'est pour controler un minimum et un maximum, car JSpinner le fait, suffit de lui donner un SpinnerNumberModel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JSpinner spinner = new JSpinner(new SpinnerNumberModel(depart, minimum, maximum, pas));
    Creer un JSpinner dont les valeurs sont comprises entre minimum et maximum. depart est la valeur au départ, et pas est le pas entre chaque valeurs (en générale pour les entiers on met 1, maais on peut vouloir par exemple les multiples de 3 entre 9 et 99, dans ce cas on le construit ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JSpinner spinner = new JSpinner(new SpinnerNumberModel(9, 9, 99, 3));
    comme ca les valeurs vont être 9, 12, 15, ....
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    Ah ouais....

    Oh ben ça alors....

    Bon bah je te remercie, je ne vais pas me casser la tête plus longtemps...

    Je pense qu'à la base, l'auteur avait développé une classe supplémentaire pour modifier les couleurs de textes, et d'autres choses dont je ne vois pas trop,

    bah merci,

    ciao

  4. #4
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Ici : http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/SpinnerNumberModel.html#SpinnerNumberModel(int,%20int,%20int,%20int)
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

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

Discussions similaires

  1. Instanciation d'une sous-classe
    Par iubito dans le forum Langage
    Réponses: 6
    Dernier message: 23/01/2006, 16h27
  2. un cas avec des Sous Classes
    Par Daeron dans le forum Langage
    Réponses: 7
    Dernier message: 17/01/2006, 17h39
  3. Declaré en classe de base, instancié en sous classe
    Par jobigoud dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2005, 10h55
  4. Super classes et sous-classes/Méthodes
    Par smag dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2005, 23h10
  5. [Language]constructeur de sous classes
    Par seb888 dans le forum Langage
    Réponses: 12
    Dernier message: 04/06/2005, 22h37

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