OVH Cloud OVH Cloud

Touche de raccourci

5 réponses
Avatar
Jean-Marc
Bonsoir,

Nouveau venu dans la programmation java j'étudie pour le moment swing.

J'ai défini un bouton via la méthode suivante et j'ai défini comme raccourci
la touche de fonction F3; du moins je le pensais... mais je remarque que je
suis obligé d'enfoncer les touches Alt F3 pour "activer" mon
"actionPerformed"... C'est normal ?

private javax.swing.JButton getBtnFunction_1() {
if (btnFunction_1 == null) {
btnFunction_1 = new javax.swing.JButton("F3 View");
btnFunction_1.setMnemonic(java.awt.event.KeyEvent.VK_F3);

btnFunction_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ae) {
System.out.println("Non implémenté :" + ae.getSource());
}
});
}

return( btnFunction_1 );
}

Merci

5 réponses

Avatar
Christophe M
Jean-Marc wrote:
Bonsoir,

Nouveau venu dans la programmation java j'étudie pour le moment swing.

J'ai défini un bouton via la méthode suivante et j'ai défini comme raccourci
la touche de fonction F3; du moins je le pensais... mais je remarque que je
suis obligé d'enfoncer les touches Alt F3 pour "activer" mon
"actionPerformed"... C'est normal ?

private javax.swing.JButton getBtnFunction_1() {
if (btnFunction_1 == null) {
btnFunction_1 = new javax.swing.JButton("F3 View");
btnFunction_1.setMnemonic(java.awt.event.KeyEvent.VK_F3);

btnFunction_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ae) {
System.out.println("Non implémenté :" + ae.getSource());
}
});
}

return( btnFunction_1 );
}

Merci


Hé bien, pour moi, c'est normal.


Tu définis un "mnémonic" sur le bouton, càd l'équivalent d'une "lettre"
de racourcis, qui sous windows est activable via ALT+la_lettre . Ces
lettres apparaissent soulignées, quand le mnémonic est une lettre du
libellé de l'objet.
Bien que F3 ne soit pas une lettre, ça fonctionne pareil sans être
"visible" à l'écran.

Pour faire juste un F3, il faut à mon avis faire un Keylistener sur le
bon "Container" (surement la panel qui contient les autres objets, voir
la frame)

Avatar
Jean-Marc
Bonjour,

Merci Christophe. Je vais chercher dans cette direction.

"Christophe M" <mccricri_at_hotmail.com> a écrit dans le message de
news:40fb6c36$
Jean-Marc wrote:
Bonsoir,

Nouveau venu dans la programmation java j'étudie pour le moment swing.

J'ai défini un bouton via la méthode suivante et j'ai défini comme
raccourci


la touche de fonction F3; du moins je le pensais... mais je remarque que
je


suis obligé d'enfoncer les touches Alt F3 pour "activer" mon
"actionPerformed"... C'est normal ?

private javax.swing.JButton getBtnFunction_1() {
if (btnFunction_1 == null) {
btnFunction_1 = new javax.swing.JButton("F3 View");
btnFunction_1.setMnemonic(java.awt.event.KeyEvent.VK_F3);

btnFunction_1.addActionListener(new
java.awt.event.ActionListener() {


public void actionPerformed(java.awt.event.ActionEvent ae) {
System.out.println("Non implémenté :" + ae.getSource());
}
});
}

return( btnFunction_1 );
}

Merci


Hé bien, pour moi, c'est normal.


Tu définis un "mnémonic" sur le bouton, càd l'équivalent d'une "lettre"
de racourcis, qui sous windows est activable via ALT+la_lettre . Ces
lettres apparaissent soulignées, quand le mnémonic est une lettre du
libellé de l'objet.
Bien que F3 ne soit pas une lettre, ça fonctionne pareil sans être
"visible" à l'écran.

Pour faire juste un F3, il faut à mon avis faire un Keylistener sur le
bon "Container" (surement la panel qui contient les autres objets, voir
la frame)




Avatar
Isammoc
Hé bien, pour moi, c'est normal.



Pour moi aussi :)

Tu définis un "mnémonic" sur le bouton, càd l'équivalent d'une
"lettre" de racourcis, qui sous windows est activable via
ALT+la_lettre . Ces lettres apparaissent soulignées, quand le
mnémonic est une lettre du libellé de l'objet.
Bien que F3 ne soit pas une lettre, ça fonctionne pareil sans être
"visible" à l'écran.

Pour faire juste un F3, il faut à mon avis faire un Keylistener sur
le bon "Container" (surement la panel qui contient les autres objets,
voir la frame)



Pour moi, il faudrait plutot chercher du coté des accelerateurs...
la méthode setAccelerator() de la classe JMenuItem me parait tres adapté au
probleme...



Isammoc


Avatar
Christophe M
Isammoc wrote:
Hé bien, pour moi, c'est normal.




Pour moi aussi :)


Tu définis un "mnémonic" sur le bouton, càd l'équivalent d'une
"lettre" de racourcis, qui sous windows est activable via
ALT+la_lettre . Ces lettres apparaissent soulignées, quand le
mnémonic est une lettre du libellé de l'objet.
Bien que F3 ne soit pas une lettre, ça fonctionne pareil sans être
"visible" à l'écran.

Pour faire juste un F3, il faut à mon avis faire un Keylistener sur
le bon "Container" (surement la panel qui contient les autres objets,
voir la frame)




Pour moi, il faudrait plutot chercher du coté des accelerateurs...
la méthode setAccelerator() de la classe JMenuItem me parait tres adapté au
probleme...



Isammoc


Ouais, pas bête, mais je sais pas si c'est utilisable sur autre chose
qu'un point de menu. Ou alors, examiner le code source du JMenuItem pour
voir comment c'est géré ;-)



Avatar
Christophe M
Jean-Marc wrote:
Bonsoir,

Nouveau venu dans la programmation java j'étudie pour le moment swing.

J'ai défini un bouton via la méthode suivante et j'ai défini comme raccourci
la touche de fonction F3; du moins je le pensais... mais je remarque que je
suis obligé d'enfoncer les touches Alt F3 pour "activer" mon
"actionPerformed"... C'est normal ?

private javax.swing.JButton getBtnFunction_1() {
if (btnFunction_1 == null) {
btnFunction_1 = new javax.swing.JButton("F3 View");
btnFunction_1.setMnemonic(java.awt.event.KeyEvent.VK_F3);

btnFunction_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ae) {
System.out.println("Non implémenté :" + ae.getSource());
}
});
}

return( btnFunction_1 );
}

Merci


Donc pour donner LA réponse ;-)


private javax.swing.JButton getBtnFunction_1() {
if (btnFunction_1 == null) {
btnFunction_1 = new javax.swing.JButton("F3 View");
// btnFunction_1.setMnemonic(java.awt.event.KeyEvent.VK_F3);
btnFunction_1.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F3),"MONF3");
btnFunction_1.getActionMap().put("MONF3",new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ae) {
System.out.println("Non implémenté :" + ae.getSource());
}
});

// btnFunction_1.addActionListener();
}

return( btnFunction_1 );
}

Merci de confirmer si ça fonctionne, j'ai pas testé :-p