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 :

Modifier un JSpinner


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Par défaut Modifier un JSpinner
    Bonjour à tous,

    Je voudrais savoir comment je peux faire pour faire en sorte qu'un JSpinner sois transparant, que seule la valeur sois visible lorsqu'il n'a pas le focus.

    Un exemple de cela est dans le composant DateTimePicker de Visual basic .net, le sélecteur du mois est un Spinner(version VB .net) et j'aimerais reproduire cette effet en java.

    Merci d'avance,

    [ Sujet déplacé depuis le forum java par Viena ]
    Les Règles du Forum

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Essaye setOpaque(false)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Par défaut
    La méthode setOpaque sa marche pas. Sur les Label setOpaque est a false,mais sur des bouton et des TextField sa marche pas. Quelqu'un aurait une autre idée

  4. #4
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    J'ai peut être un petit bout de code que je viens de faire qui pourrait t'interesser de poursuivre (car je n'ai pas la force de le finir, je suis crevé)

    Attention les yeux voici le petit bout de code fait en 3 secondes 5 :
    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
    public class JSpinnerEffect extends JPanel implements  MouseListener{
    	private JTextField jtf;
    	private JSpinner jsp;
    	public JSpinnerEffect(){
    		jtf=new JTextField("0");
    		jsp=new JSpinner();
     
    		add(jsp);
    		add(jtf);
    		jsp.setVisible(false);
     
    		jtf.addMouseListener(this);
    		jsp.addChangeListener(new ChangeListener(){
    			public void stateChanged(ChangeEvent e) {
    				jtf.setText(jsp.getValue().toString());
    				jtf.setVisible(true);
    				jsp.setVisible(false);
     
    			}
    		});
    	}
     
    	public void mouseClicked(java.awt.event.MouseEvent e) {
    		jsp.setVisible(true);
    		jtf.setVisible(false);				
    	}
     
    	public void mousePressed(java.awt.event.MouseEvent e) {
    		// TODO Auto-generated method stub		
    	}
     
    	public void mouseReleased(java.awt.event.MouseEvent e) {
    		// TODO Auto-generated method stub
    	}
     
    	public void mouseEntered(java.awt.event.MouseEvent e) {
    		// TODO Auto-generated method stub
    	}
     
    	public void mouseExited(java.awt.event.MouseEvent e) {
    		// TODO Auto-generated method stub		
    	}
    }
    C'est juste pour ne pas que l'on dise que le .NET a des fonctionnalités meilleurs que le java.

  5. #5
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    J'espère que ce post ne va pas continuer troll Java / .NET

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Disons que dans un forum java, le troll a une espérance de vie très courte.

    Je ne suis pas sur que ton code reflète bien l'ampleur du travail à effectuer.
    Tu utilises un JPanel, mais tu ne redéfinis pas paint, tu ne fais pas référence au FocusListener (que je viens de découvrir, et il facilite un peu le travail).
    Sans parler des size, et des boutons.

    Moi aussi je peste contre ces JSpinner dont on voit de quels composants ils sont faits mais auxquels on ne peut pas accéder.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Par défaut
    En fait, j'ai déjà essayer le focus listenner et dans mon cas j'ai juste un composant qui peut avoir le focus, justement c'est mon JSpinner.

    Composants de ma fenetre:
    - 1 JSpinner: sélection/affichage d'une année
    - 2 BasicArrowButton: Back/ forward sur les mois de l'année
    - 1 JLabel: Affichage du mois courrant de l'année

    Le mouseListeners sur l'événement MouseEnter et MouseExit sont bon mais encore la sur le JSpinner a cause qu'il y a ajout d'un listenner sur le JSpinner et non sur tout les composant du JSpinner, lorsque la souris passe sur l'editor ou chacun des boutons du JSpinner c'est considèrer comme un mouseExit.

    Help meeeeeeee, Java is fuck top mais des fois c'est tellement compliquer.

  8. #8
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tu ne peux pas rediriger ton focus ? Je suppose que tout tes objets sont contenus dans un JPanel. Donc pour les objets internes, tu peux faire :
    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
    // Enlever la gestion classique du focus
    BasicArrowButton b = ...
    FocusListener[] fl = b.getFocusListeners();
    for(int i = 0; i < fl.length; i++) { b.removeFocusListener(fl[i]); }
     
    // Rediriger les focus events  au composant parent.
    b.addFocusListener(
      new FocusListener() {
        public void focusGained(FocusEvent e) {
            FocusListener[] flp = b.getParent().getFocusListeners();
            for(int i = 0; i < flp.length; i++) {
              flp[i].focusGained(e);
            }
        }
     
        // idem pour focusLost
    });
    C'est un peu bourrin, mais avec les ComponentListeners et WindowListeners, ca marche très bien pour moi.

    [edit] Pour focus lost, il faut voir, car un composant interne peut perdre le focus en faveur d'un autre. La redirection peut ne pas etre si triviale.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Par défaut
    Bon bien je pense avoir règler mon problème de visibilité de mon JSpinner en allant chercher tout les parent ces composant et les composants du JSpinner et les mettant Opaque(true | false).

    J'utilise un focusListener et j'aimerais maintenant savoir s'il est possible à la création du panneau qu'il n'y est aucun composant qui n'a le focus, meme les textFields.

    Merci d'avance

Discussions similaires

  1. Modifier la valeur d'un jspinner
    Par Dine_Med dans le forum Composants
    Réponses: 1
    Dernier message: 15/04/2009, 11h22
  2. [jspinner] [spinnerdateModel] modifier l'incrément
    Par nawel dans le forum Composants
    Réponses: 6
    Dernier message: 07/07/2005, 10h55
  3. Réponses: 5
    Dernier message: 27/11/2002, 14h08
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 13h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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