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

 Java Discussion :

Pb de focus sur un bouton


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut Pb de focus sur un bouton
    Bonjour,

    Je débute en programmation Java, j'ai fait l'acquisition d'un livre pour apprendre le Java, je teste un programme qui fonctionne parfaitement mais je me suis mis dans l'idée de le modifier en y rajoutant des boutons.
    Le problème c'est que le bouton "Ok" n'exécute jamais le code et pourtant il est bien par défaut, si je veux qu'il exécute le code il faut que je le sélectionne soit avec la souris ou la touche TAB et ensuite en appuyant sur entrée il exécute le code.
    En cherchant sur des forums j'ai vu que l'on devait mettre cette méthode "xxxxxx.requestFocus();" ce que j'ai fait mais pas plus de succès.

    Comment faire pour que ce bouton soit par défaut ?

    Voici mon code : (il est auto généré par Eclispe avec le plug-in Visual Editor)
    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
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    import javax.swing.SwingUtilities;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import java.awt.Rectangle;
    import javax.swing.JButton;
    import javax.swing.JTextField;
    import javax.swing.SwingConstants;
     
    import java.awt.event.KeyEvent;
    import javax.swing.DefaultButtonModel;
     
    public class cercleswing extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private JPanel jContentPane = null;
    	private JLabel jLabel = null;
    	private JLabel jLabel1 = null;
    	private JButton jButton = null;
    	private JTextField saisieRayon = null;
    	private JLabel resultat = null;
    	private JButton quitter = null;
    	private JButton jButton1 = null;
    	/**
             * This method initializes jButton      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton() {
    		if (jButton == null) {
    			jButton = new JButton();
    			jButton.setBounds(new Rectangle(44, 91, 91, 29));
    			jButton.setText("Calculer");
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					double rayon = Double.parseDouble(saisieRayon.getText());
    					double perimetre = 2 * Math.PI * rayon;
    					resultat.setText(Double.toString(perimetre));
    					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
    				}
    			});
    		}
    		return jButton;
    	}
     
    	private void calculperim()
    	{
    		double rayon = Double.parseDouble(saisieRayon.getText());
    		double perimetre = 2 * Math.PI * rayon;
    		resultat.setText(Double.toString(perimetre));
    		//return perimetre;
    	}
     
    	/**
             * This method initializes saisieRayon  
             *      
             * @return javax.swing.JTextField       
             */
    	private JTextField getSaisieRayon() {
    		if (saisieRayon == null) {
    			saisieRayon = new JTextField();
    			saisieRayon.setBounds(new Rectangle(75, 45, 53, 16));
    			saisieRayon.setHorizontalAlignment(JTextField.CENTER);
    			saisieRayon.setText("0");
    		}
    		return saisieRayon;
    	}
     
    	/**
             * This method initializes quitter      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getQuitter() {
    		if (quitter == null) {
    			quitter = new JButton();
    			quitter.setBounds(new Rectangle(166, 91, 77, 28));
    			quitter.setText("Quitter");			
    			quitter.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					System.exit(0);
    					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
    				}
    			});
    		}
    		return quitter;
    	}
     
    	/**
             * This method initializes jButton1     
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton1() {
    		if (jButton1 == null) {
    			DefaultButtonModel defaultButtonModel = new DefaultButtonModel();
    			jButton1 = new JButton();
    			jButton1.setBounds(new Rectangle(270, 91, 61, 31));
    			jButton1.setModel(defaultButtonModel);
    			jButton1.setText("Ok");
    			jButton1.setToolTipText("Appuyer ici");
    			jButton1.requestFocus();
    			jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
    				public void keyPressed(java.awt.event.KeyEvent e) {
    					if (e.getKeyCode() == KeyEvent.VK_ENTER){
    					calculperim();
    					//System.out.println("keyPressed()"); // TODO Auto-generated Event stub keyPressed()	
    					}
    				}
    			});
     
    		}
    		return jButton1;
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				cercleswing thisClass = new cercleswing();
    				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    				thisClass.setVisible(true);
    			}
    		});
    	}
     
    	/**
             * This is the default constructor
             */
    	public cercleswing() {
    		super();
    		initialize();
    	}
     
    	/**
             * This method initializes this
             * 
             * @return void
             */
    	private void initialize() {
    		this.setSize(400, 200);
    		this.setContentPane(getJContentPane());
    		this.setTitle("Calculer le perimetre d'un cercle");
    		this.getRootPane().setDefaultButton(jButton1);
     
    	}
     
    	/**
             * This method initializes jContentPane
             * 
             * @return javax.swing.JPanel
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			resultat = new JLabel();
    			resultat.setBounds(new Rectangle(249, 46, 72, 16));
    			resultat.setHorizontalTextPosition(SwingConstants.CENTER);
    			resultat.setHorizontalAlignment(SwingConstants.LEFT);
    			resultat.setText("0");
    			jLabel1 = new JLabel();
    			jLabel1.setBounds(new Rectangle(180, 45, 71, 16));
    			jLabel1.setText("Perimetre :");
    			jLabel = new JLabel();
    			jLabel.setBounds(new Rectangle(18, 43, 53, 16));
    			jLabel.setText("Rayon :");
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.add(jLabel, null);
    			jContentPane.add(jLabel1, null);
    			jContentPane.add(getJButton(), null);
    			jContentPane.add(getSaisieRayon(), null);
    			jContentPane.add(resultat, null);
    			jContentPane.add(getQuitter(), null);
    			jContentPane.add(getJButton1(), null);
    		}
    		return jContentPane;
    	}
     
    }  //  @jve:decl-index=0:visual-constraint="17,7"
    Merci pour votre aide.

    Alfredo22

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 171
    Par défaut
    tu peux le mettre dans un panel et c'est le panel que tu met par defaut

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut
    Bonjour, tous mes meilleurs vœux pour cette année 2009.

    Merci Bracket pour cette solution; c'est la seule solution ou en existent-ils des autres avec des méthodes, avec un focuslistner, avec une classe, etc,etc?

    Quel est votre avis? Auriez-vous un exemple ?

    Cordialement.

    Alfredo22

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 171
    Par défaut
    essaie sa TonButton.setSelected(true)

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 292
    Par défaut
    J'ai récupéré ton code et je l'ai compilé. J'ai vu ton problème.
    Pour moi, un bouton, ça a un ActionListener. Sinon, ça ne fait rien.
    J'ai purement et simplement effacer ton écouteur de clavier (ce qui n'a strictement rien changer au fonctionnement de l'application)
    Et j'ai rajouté un ActionListener. Et ça marche.

    voici ce que j'ai inséré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    jButton1.addActionListener(new java.awt.event.ActionListener(){
                                    public void actionPerformed(java.awt.event.ActionEvent arg0) 
                                    {
                                        calculperim();
     
                                    }       
                                });
    Ça te va ?

Discussions similaires

  1. Focus sur un Bouton
    Par italia57 dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 05/07/2012, 18h48
  2. Focus sur un bouton de MessageDlg
    Par colorid dans le forum Langage
    Réponses: 3
    Dernier message: 06/08/2011, 10h58
  3. Focus sur bouton
    Par delph1983 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/06/2007, 13h55
  4. Réponses: 2
    Dernier message: 01/05/2006, 18h02
  5. Focus sur les boutons avec plusieurs formulaire
    Par davids21 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/04/2005, 15h48

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