2017-03-15 2 views
0

Je pourrais utiliser deux ActionLister pour effectuer la même action mais j'utilise l'outil pour faire condenser le code mais ça ne marche pas. Lorsque je choisis b1, il n'y a pas de texte sur le champ de texte.JPanel et ActionLister ne fonctionnant pas

public Radio_Button() { 
     setSize(600, 400); 
     panel = new JPanel(); 
     tf = new JTextField("    "); 
     group = new ButtonGroup(); 
     b1 = new JRadioButton("1"); 
     b2 = new JRadioButton("2"); 
     b1.setActionCommand("you choose one"); 
     b2.setActionCommand("you choose two"); 
     group.add(b1); 
     group.add(b2); 
     panel.add(b1); 
     panel.add(b2); 
     panel.add(tf); 
     add(panel); 

    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // TODO Auto-generated method stub 
     tf.setText(e.getActionCommand()); 

    } 
} 
+0

[Comment écrire un ActionListener] (https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html) pourrait être une meilleure ressource – MadProgrammer

+0

Première fois que je vois ce site. Merci de me le faire savoir – zoey

Répondre

0

Vous oubliez d'enregistrer un écouteur pour les boutons radio.

Ajouter ceci après setActionCommand().

b1.addActionListener(this); 
b2.addActionListener(this); 

Si vous avez différents boutons

JButton button1 = new JButton("Some Text"); 
JButton button2 = new JButton("Some Other Text"); 

    button1.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      JOptionPane.showMessageDialog(null, "I was clicked !"); 
     } }); 

    button2.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      JOptionPane.showMessageDialog(null, "Second button was clicked!"); 
     } }); 
+0

Thx! Je pensais que ce n'était pas nécessaire. Puis-je également demander, si j'ai d'autres boutons différents dans le panneau mais je veux qu'ils montrent une fenêtre pop-up quand je les appuie. Puis-je également l'utiliser dans cette ActionLister implémentée ou je devrais en faire un pour eux? – zoey

+0

Je vous suggère de faire un pour eux. –