Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1370 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  JToggleButton + Action

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JToggleButton + Action

n°297172
--greg--
Posté le 30-01-2003 à 17:16:38  profilanswer
 

Hop
 
 
J'ai un JToggleButton... et une implementation d'Action
bon.
je veux que mon button declenche cette action qd on clique dessus mais aussi quand on fait "ctrl-D"
tout ça marche.
SAUF QUE quandon fait ctrl-D, l'etat visuel du bouton change pas :/
Je pensais que l'action faisait ça comme une grande moua?
 
 


Action myAction = new PouetAction("pouet" );
myButton = new JToggleButton(myAction);
myButton.getInputMap(
                JComponent.WHEN_IN_FOCUSED_WINDOW).put(
                        KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.CTRL_MASK), "tralala" );
        myButton.getActionMap().put("tralala", myAction);

 
 
keske j'ai "oublié" là! ? :/


Message édité par --greg-- le 30-01-2003 à 23:43:22

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
mood
Publicité
Posté le 30-01-2003 à 17:16:38  profilanswer
 

n°297370
--greg--
Posté le 30-01-2003 à 20:15:37  profilanswer
 

up :(
 
 
(promis je tape un oeil à tous les topics java d'aujourd'hui en rentrant chez moi tout à l'heure...)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°297549
--greg--
Posté le 30-01-2003 à 22:36:19  profilanswer
 

bon mtnt que j'ai uppé tous les topics java que je pouvais, je remonte les miens :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°297613
--greg--
Posté le 30-01-2003 à 23:49:31  profilanswer
 

mais ou est passé gfive :??: :d


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°297641
--greg--
Posté le 31-01-2003 à 00:31:40  profilanswer
 

bon je fais ça mais je trouve ça tout pourri:

Code :
  1. public class Test extends JDialog {
  2.     public static void main(String[] args) {
  3.         new Test().setVisible(true);
  4.     }
  5.     private JToggleButton myButton;
  6.     public Test() {
  7.         setContentPane(new TestPanel());
  8.         pack();
  9.         validate();
  10.     }
  11.     class TestTitledBorderPanel extends JPanel {
  12. public TestTitledBorderPanel() {
  13.     super();
  14.     ToggleListener listnr = new ToggleListener();
  15.     myButton = new JToggleButton("pouet" );
  16.     myButton.addActionListener(listnr);
  17.     myButton.addKeyListener(listnr);
  18.     add(myButton);
  19. }
  20.     }
  21.     class ToggleListener implements ActionListener, KeyListener {
  22.         public void actionPerformed(ActionEvent e) {
  23.             System.out.println("tralalalala!" );
  24.         }
  25.         public void keyPressed(KeyEvent e) {
  26.             if (e.getKeyCode() == KeyEvent.VK_D && e.isControlDown()) {
  27.                 System.out.println("pouet" );
  28.                 myButton.setSelected(!myButton.isSelected());
  29.             }
  30.         }
  31.         public void keyTyped(KeyEvent e) {
  32.         }
  33.         public void keyReleased(KeyEvent e) {
  34.         }
  35.     }
  36. }


 
tout pourri notamment parce que si je dois définir le raccourci clavier dans le listener et qu'en plus comme ça, il n'ecoute que qd il a le focus... :/
 
ce qui fait que ça marchait pas avec l'autre methode c que je pouvais pas determiner si l'action avait été declenchée par un click ou par le raccourci clavier...
[:meganne]


Message édité par --greg-- le 31-01-2003 à 00:36:03

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°297649
--greg--
Posté le 31-01-2003 à 00:47:25  profilanswer
 

voilà la version avec Action
 
 

Code :
  1. import javax.swing.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.KeyEvent;
  4. public class TestToggle extends JDialog {
  5.     public static void main(String[] args) {
  6.         new TestToggle().setVisible(true);
  7.     }
  8.     private JToggleButton myButton;
  9.     public TestToggle() {
  10.         setContentPane(new TestTogglePanel());
  11.         pack();
  12.         validate();
  13.     }
  14.     class TestTogglePanel extends JPanel {
  15. public TestTogglePanel() {
  16.     super();
  17.     add(new JButton("rien" ));
  18.     myButton = new JToggleButton("pouet" );
  19.     Action myAction = new AbstractAction("trrrrrr" ) {
  20.         public void actionPerformed(ActionEvent e) {
  21.             System.out.println("TRIIIIIIIIIIIIIIIIIIIIIIIIIIIIII" );
  22.             System.out.println("e.getActionCommand() = " + e.getActionCommand());
  23.             System.out.println("e.paramString() = " + e.paramString());
  24.             myButton.setSelected(!myButton.isSelected()); // --> beh du coup qd on clique c selectionné/deselectionné d'un coup :/
  25.         }
  26.     };
  27.     myButton.getInputMap(
  28.                JComponent.WHEN_IN_FOCUSED_WINDOW).put(
  29.                        KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.CTRL_MASK), "inputactionmap" );
  30.             myButton.getActionMap().put("inputactionmap", myAction);
  31.             myButton.setAction(myAction);
  32.     add(myButton);
  33. }
  34.     }
  35. }

 
je sais pas comment reconnaitre si on clique ou si on utilise le raccourci clavier. j'esperais la clé utilisée dans les input et action map serait utilisée comme actionCommand mais apparement non :/
alors là le seul truc c'est que l'actionCommand quand on clique vaut le nom de l'action... mais sachant que ce nom est utilisé pour l'affichage du label sur le bouton, spa top :/
l'actionCommand quand on utilise le clavier vaut la "touche" utilisée, ce qui pour ctrl-d, sous dos, nous fait un joli petit diamant... pas top non plus quoua :/ jdevrais pas avoir a connaitre le raccourci-clavier dans l'action
heeeeelp


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°297658
--greg--
Posté le 31-01-2003 à 01:10:06  profilanswer
 

bon
 
voici une version ou je me fait pas chier avec inputmap et actionmap et qui marche...  
 
 

public class TestToggle extends JDialog {
    public static void main(String[] args) {
        System.out.println((int)'d');
        new TestToggle().setVisible(true);
    }
    private JToggleButton myButton;
    public TestToggle() {
        setContentPane(new TestTogglePanel());
        pack();
        validate();
    }
 
    class TestTogglePanel extends JPanel {
 
 public TestTogglePanel() {
     super();
 
     add(new JButton("rien" ));
 
     myButton = new JToggleButton("pouet" );
     Action myAction = new AbstractAction("trrrrrr" ) {
         public void actionPerformed(ActionEvent e) {
             System.out.println("TRIIIIIIIIIIIIIIIIIIIIIIIIIIIIII" );
             if (e.getActionCommand().equals("keyboardAction" ))
                 myButton.setSelected(!myButton.isSelected());
         }
     };
     myButton.registerKeyboardAction(myAction,
             "keyboardAction",
             KeyStroke.getKeyStroke("control D" ), // 100, InputEvent.CTRL_MASK
             JComponent.WHEN_IN_FOCUSED_WINDOW);
            myButton.setAction(myAction);
 
     add(myButton);
 }
    }
}

 
si qqun passe par là merci de me dire ce qu'il en pense...
 
(pour le "control D", jdois etre un peu concon mais j'y arrive pas autrement :))


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°298028
--greg--
Posté le 31-01-2003 à 15:40:38  profilanswer
 

up :/


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°298184
--greg--
Posté le 31-01-2003 à 18:23:36  profilanswer
 

ça suxxxxxxe je veux pas que mon action connaisse le Button :fou:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°298243
gloop
Posté le 31-01-2003 à 20:23:43  profilanswer
 

désolé ms j'ai aucune idée pour t'aider
en fait après avoir lu tous tes msgs, je me rappelle meme plus de ton pb :pt1cable:  
 
mais je vois pas pkoi tu veux que ton bouton change d'aspect avec le raccourci, ca ne le fait avec aucune autre lib graphique (en tous cas pas dans celles que j'utilise).
 
meme si j't'ai pas aidé, ca te fait un ptit up et en + tu seras - seul dans ce topic  :D

mood
Publicité
Posté le 31-01-2003 à 20:23:43  profilanswer
 

n°298877
--greg--
Posté le 01-02-2003 à 15:48:18  profilanswer
 

gloop a écrit :

désolé ms j'ai aucune idée pour t'aider
en fait après avoir lu tous tes msgs, je me rappelle meme plus de ton pb :pt1cable:  
 
mais je vois pas pkoi tu veux que ton bouton change d'aspect avec le raccourci, ca ne le fait avec aucune autre lib graphique (en tous cas pas dans celles que j'utilise).
 
meme si j't'ai pas aidé, ca te fait un ptit up et en + tu seras - seul dans ce topic  :D  

merci ;)
 
ben ce que je veux c'est que le ctrl-d ai le meme effet qu'un click sur le bouton... donc ça doit appeler l'action mais aussi "enfoncer" le bouton...c un ToggleButton...c comme une checkbox koi..2 états.


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°298889
gloop
Posté le 01-02-2003 à 15:58:08  profilanswer
 

--greg-- a écrit :

merci ;)
 
ben ce que je veux c'est que le ctrl-d ai le meme effet qu'un click sur le bouton... donc ça doit appeler l'action mais aussi  "enfoncer" le bouton...c un ToggleButton ...c comme une checkbox koi..2 états.
 


ok, mais comme je te l'ai dit un peu + haut, une fois arrivé en bas, j'me rappellai plus du pb  :??:  

n°298947
--greg--
Posté le 01-02-2003 à 17:31:19  profilanswer
 

gloop a écrit :


ok, mais comme je te l'ai dit un peu + haut, une fois arrivé en bas, j'me rappellai plus du pb  :??:  
 

ben je viens de te le rappeler ;)
mon pb mtnt c'est que ça marche mais que j'ai pas trouvé d'autre moyen que de foutre une reference à mon toggleButton dans l'Action et je trouve ça nul :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  JToggleButton + Action

 

Sujets relatifs
Visual Basic : repeter une action jusque...formulaire : action submit qd on appuis sur entree
Requête action sous Access 2002[shell-bash] attendre un certain temps avant l'action suivante
[PHP] utiliser une fonction php dans le champ action d'une forme[ACCESS] comment fair une meme action sur toute les tables ?
Comment creer un timer qui fait une action toutes les 5 minutes ?ACtion automatique a l'ouverture d'une page en Javascript ou HTML ?
Double Action sur un "onclick" ??[flash-Action script] loadvariable ?
Plus de sujets relatifs à : JToggleButton + Action


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR