Bonjour,
J'ai essayé de faire marcher le bout de code fourni par Oracle et qui
est le suivant:
JTree tree = new JTree();
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(),
e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(),
e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
private void myDoubleClick(int selRow, TreePath selPath) {
// TODO Auto-generated method stub
System.out.println("DoubleClick");
}
private void mySingleClick(int selRow, TreePath selPath) {
// TODO Auto-generated method stub
System.out.println("SingleClick");
}
};
tree.addMouseListener(ml);
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas
"SingleClick" lorsque je double clique?
Bonjour,
J'ai essayé de faire marcher le bout de code fourni par Oracle et qui
est le suivant:
JTree tree = new JTree();
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(),
e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(),
e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
private void myDoubleClick(int selRow, TreePath selPath) {
// TODO Auto-generated method stub
System.out.println("DoubleClick");
}
private void mySingleClick(int selRow, TreePath selPath) {
// TODO Auto-generated method stub
System.out.println("SingleClick");
}
};
tree.addMouseListener(ml);
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas
"SingleClick" lorsque je double clique?
Bonjour,
J'ai essayé de faire marcher le bout de code fourni par Oracle et qui
est le suivant:
JTree tree = new JTree();
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(),
e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(),
e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
private void myDoubleClick(int selRow, TreePath selPath) {
// TODO Auto-generated method stub
System.out.println("DoubleClick");
}
private void mySingleClick(int selRow, TreePath selPath) {
// TODO Auto-generated method stub
System.out.println("SingleClick");
}
};
tree.addMouseListener(ml);
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas
"SingleClick" lorsque je double clique?
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas "SingleClick"
lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors du
premier puis du second clic, tout simplement : lors du premier clic le
compteur est à 1, puis lors du clic immédiatement suivant il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que tu
ne veux surtout pas exécuter lors d'un double clic : si on définit un
double clic comme deux clics successifs dans un temps donné, pour
détecter qu'il s'agit d'un simple clic il faudrait détecter le clic puis
attendre assez longtemps pour déterminer que ça ne peut pas être un
double clic. Tu pourrais le programmer, mais ça risque de rendre
l'interface "lourde", parce que les événements sur simple clic ne seront
pas traités rapidement.
Quelles actions veux-tu lancer sur ton composant sur un simple puis un
double clic ? Est-ce qu'elles n'ont rien à voir entre elles ?
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas "SingleClick"
lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors du
premier puis du second clic, tout simplement : lors du premier clic le
compteur est à 1, puis lors du clic immédiatement suivant il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que tu
ne veux surtout pas exécuter lors d'un double clic : si on définit un
double clic comme deux clics successifs dans un temps donné, pour
détecter qu'il s'agit d'un simple clic il faudrait détecter le clic puis
attendre assez longtemps pour déterminer que ça ne peut pas être un
double clic. Tu pourrais le programmer, mais ça risque de rendre
l'interface "lourde", parce que les événements sur simple clic ne seront
pas traités rapidement.
Quelles actions veux-tu lancer sur ton composant sur un simple puis un
double clic ? Est-ce qu'elles n'ont rien à voir entre elles ?
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas "SingleClick"
lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors du
premier puis du second clic, tout simplement : lors du premier clic le
compteur est à 1, puis lors du clic immédiatement suivant il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que tu
ne veux surtout pas exécuter lors d'un double clic : si on définit un
double clic comme deux clics successifs dans un temps donné, pour
détecter qu'il s'agit d'un simple clic il faudrait détecter le clic puis
attendre assez longtemps pour déterminer que ça ne peut pas être un
double clic. Tu pourrais le programmer, mais ça risque de rendre
l'interface "lourde", parce que les événements sur simple clic ne seront
pas traités rapidement.
Quelles actions veux-tu lancer sur ton composant sur un simple puis un
double clic ? Est-ce qu'elles n'ont rien à voir entre elles ?
Le Sun, 04 Nov 2018 17:47:58 +0100, Yliur a écrit :À l'exécution, lorsque je clique une fois ça m'affiche
"SingleClick". Par contre lorsque je double clique ça m'affiche
"SingleClick" puis tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas
"SingleClick" lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors
du premier puis du second clic, tout simplement : lors du premier
clic le compteur est à 1, puis lors du clic immédiatement suivant
il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que
tu ne veux surtout pas exécuter lors d'un double clic : si on
définit un double clic comme deux clics successifs dans un temps
donné, pour détecter qu'il s'agit d'un simple clic il faudrait
détecter le clic puis attendre assez longtemps pour déterminer que
ça ne peut pas être un double clic. Tu pourrais le programmer, mais
ça risque de rendre l'interface "lourde", parce que les événements
sur simple clic ne seront pas traités rapidement.
Aurais-tu un petit bout de code pour m'expliquer comment je peux
détecter le click et tester s'il s'agit d'un simple ou double click?
Quelles actions veux-tu lancer sur ton composant sur un simple puis
un double clic ? Est-ce qu'elles n'ont rien à voir entre elles ?
Je voudrais lancer un JTextPane en cas de doubleclick et renommer
l'élément cliqué en cas de simple click... Mais je sens que je ne
vais traiter que le doubleclick et me débrouiller autrement pour
remplacer le simple click.
J'ai essayé ça:
if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
else {mySingleClick(selRow, selPath);}
Mais ça ne change rien...
Est-ce que quelqu'un sait si on peut changer la vitesse du
doubleclick et comment?
Le Sun, 04 Nov 2018 17:47:58 +0100, Yliur a écrit :
>>
>> À l'exécution, lorsque je clique une fois ça m'affiche
>> "SingleClick". Par contre lorsque je double clique ça m'affiche
>> "SingleClick" puis tout de suite après "DoubleClick".
>>
>> Ma question est, comment faire pour que ça n'affiche pas
>> "SingleClick" lorsque je double clique?
>
> Si je comprends bien tu as les deux événements qui s'affichent lors
> du premier puis du second clic, tout simplement : lors du premier
> clic le compteur est à 1, puis lors du clic immédiatement suivant
> il est à 2.
>
> Tu ne devrais sans doute pas avoir un événement sur simple clic que
> tu ne veux surtout pas exécuter lors d'un double clic : si on
> définit un double clic comme deux clics successifs dans un temps
> donné, pour détecter qu'il s'agit d'un simple clic il faudrait
> détecter le clic puis attendre assez longtemps pour déterminer que
> ça ne peut pas être un double clic. Tu pourrais le programmer, mais
> ça risque de rendre l'interface "lourde", parce que les événements
> sur simple clic ne seront pas traités rapidement.
>
Aurais-tu un petit bout de code pour m'expliquer comment je peux
détecter le click et tester s'il s'agit d'un simple ou double click?
> Quelles actions veux-tu lancer sur ton composant sur un simple puis
> un double clic ? Est-ce qu'elles n'ont rien à voir entre elles ?
Je voudrais lancer un JTextPane en cas de doubleclick et renommer
l'élément cliqué en cas de simple click... Mais je sens que je ne
vais traiter que le doubleclick et me débrouiller autrement pour
remplacer le simple click.
J'ai essayé ça:
if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
else {mySingleClick(selRow, selPath);}
Mais ça ne change rien...
Est-ce que quelqu'un sait si on peut changer la vitesse du
doubleclick et comment?
Le Sun, 04 Nov 2018 17:47:58 +0100, Yliur a écrit :À l'exécution, lorsque je clique une fois ça m'affiche
"SingleClick". Par contre lorsque je double clique ça m'affiche
"SingleClick" puis tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas
"SingleClick" lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors
du premier puis du second clic, tout simplement : lors du premier
clic le compteur est à 1, puis lors du clic immédiatement suivant
il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que
tu ne veux surtout pas exécuter lors d'un double clic : si on
définit un double clic comme deux clics successifs dans un temps
donné, pour détecter qu'il s'agit d'un simple clic il faudrait
détecter le clic puis attendre assez longtemps pour déterminer que
ça ne peut pas être un double clic. Tu pourrais le programmer, mais
ça risque de rendre l'interface "lourde", parce que les événements
sur simple clic ne seront pas traités rapidement.
Aurais-tu un petit bout de code pour m'expliquer comment je peux
détecter le click et tester s'il s'agit d'un simple ou double click?
Quelles actions veux-tu lancer sur ton composant sur un simple puis
un double clic ? Est-ce qu'elles n'ont rien à voir entre elles ?
Je voudrais lancer un JTextPane en cas de doubleclick et renommer
l'élément cliqué en cas de simple click... Mais je sens que je ne
vais traiter que le doubleclick et me débrouiller autrement pour
remplacer le simple click.
J'ai essayé ça:
if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
else {mySingleClick(selRow, selPath);}
Mais ça ne change rien...
Est-ce que quelqu'un sait si on peut changer la vitesse du
doubleclick et comment?
Est-ce que quelqu'un sait si on peut changer la vitesse du doubleclick
et comment?
Je ne sais pas si on peut le faire en java. Ce n'est sans doute pas une
bonne idée de le changer dans un programme de toutes façons : le
comportement serait différent des autres logiciels de l'utilisateur, ce
qui serait perturbant.
Est-ce que quelqu'un sait si on peut changer la vitesse du doubleclick
et comment?
Je ne sais pas si on peut le faire en java. Ce n'est sans doute pas une
bonne idée de le changer dans un programme de toutes façons : le
comportement serait différent des autres logiciels de l'utilisateur, ce
qui serait perturbant.
Est-ce que quelqu'un sait si on peut changer la vitesse du doubleclick
et comment?
Je ne sais pas si on peut le faire en java. Ce n'est sans doute pas une
bonne idée de le changer dans un programme de toutes façons : le
comportement serait différent des autres logiciels de l'utilisateur, ce
qui serait perturbant.
Le Sun, 04 Nov 2018 17:47:58 +0100, Yliur a écrit :À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas "SingleClick"
lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors du
premier puis du second clic, tout simplement : lors du premier clic le
compteur est à 1, puis lors du clic immédiatement suivant il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que tu
ne veux surtout pas exécuter lors d'un double clic : si on définit un
double clic comme deux clics successifs dans un temps donné, pour
détecter qu'il s'agit d'un simple clic il faudrait détecter le clic puis
attendre assez longtemps pour déterminer que ça ne peut pas être un
double clic. Tu pourrais le programmer, mais ça risque de rendre
l'interface "lourde", parce que les événements sur simple clic ne seront
pas traités rapidement.
Aurais-tu un petit bout de code pour m'expliquer comment je peux détecter
le click et tester s'il s'agit d'un simple ou double click?
Le Sun, 04 Nov 2018 17:47:58 +0100, Yliur a écrit :
À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas "SingleClick"
lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors du
premier puis du second clic, tout simplement : lors du premier clic le
compteur est à 1, puis lors du clic immédiatement suivant il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que tu
ne veux surtout pas exécuter lors d'un double clic : si on définit un
double clic comme deux clics successifs dans un temps donné, pour
détecter qu'il s'agit d'un simple clic il faudrait détecter le clic puis
attendre assez longtemps pour déterminer que ça ne peut pas être un
double clic. Tu pourrais le programmer, mais ça risque de rendre
l'interface "lourde", parce que les événements sur simple clic ne seront
pas traités rapidement.
Aurais-tu un petit bout de code pour m'expliquer comment je peux détecter
le click et tester s'il s'agit d'un simple ou double click?
Le Sun, 04 Nov 2018 17:47:58 +0100, Yliur a écrit :À l'exécution, lorsque je clique une fois ça m'affiche "SingleClick".
Par contre lorsque je double clique ça m'affiche "SingleClick" puis
tout de suite après "DoubleClick".
Ma question est, comment faire pour que ça n'affiche pas "SingleClick"
lorsque je double clique?
Si je comprends bien tu as les deux événements qui s'affichent lors du
premier puis du second clic, tout simplement : lors du premier clic le
compteur est à 1, puis lors du clic immédiatement suivant il est à 2.
Tu ne devrais sans doute pas avoir un événement sur simple clic que tu
ne veux surtout pas exécuter lors d'un double clic : si on définit un
double clic comme deux clics successifs dans un temps donné, pour
détecter qu'il s'agit d'un simple clic il faudrait détecter le clic puis
attendre assez longtemps pour déterminer que ça ne peut pas être un
double clic. Tu pourrais le programmer, mais ça risque de rendre
l'interface "lourde", parce que les événements sur simple clic ne seront
pas traités rapidement.
Aurais-tu un petit bout de code pour m'expliquer comment je peux détecter
le click et tester s'il s'agit d'un simple ou double click?
Aurais-tu un petit bout de code pour m'expliquer comment je peux
détecter le click et tester s'il s'agit d'un simple ou double click?
(code tiré de stackoverflow)
Ici, au moment du premier clic (donc le else du
if(e.getClickCount()...)), on crée un timer qui va exécuter la fonction
actionPerformed() à la fin d'un délai égal au réglage du double clic sur
le système. Dans cette fonction, on vérifie d'abord s'il n'ya pas eu
double clic entre temps grace au drapeau wasDoubleClick.
Cette gestion n'est pas forcément parfaite (quid des triples (ou plus)
clics, les lectures/écritures du drapeau sont-elle atomiques ? (sinon il
faut synchroniser), à la fin du délai (si le délai de double-clic est
très long sur le système), on est pas sûr que l'évènement soit encore
d'actualité...), mais elle couvre bien le cas général.
Aurais-tu un petit bout de code pour m'expliquer comment je peux
détecter le click et tester s'il s'agit d'un simple ou double click?
(code tiré de stackoverflow)
Ici, au moment du premier clic (donc le else du
if(e.getClickCount()...)), on crée un timer qui va exécuter la fonction
actionPerformed() à la fin d'un délai égal au réglage du double clic sur
le système. Dans cette fonction, on vérifie d'abord s'il n'ya pas eu
double clic entre temps grace au drapeau wasDoubleClick.
Cette gestion n'est pas forcément parfaite (quid des triples (ou plus)
clics, les lectures/écritures du drapeau sont-elle atomiques ? (sinon il
faut synchroniser), à la fin du délai (si le délai de double-clic est
très long sur le système), on est pas sûr que l'évènement soit encore
d'actualité...), mais elle couvre bien le cas général.
Aurais-tu un petit bout de code pour m'expliquer comment je peux
détecter le click et tester s'il s'agit d'un simple ou double click?
(code tiré de stackoverflow)
Ici, au moment du premier clic (donc le else du
if(e.getClickCount()...)), on crée un timer qui va exécuter la fonction
actionPerformed() à la fin d'un délai égal au réglage du double clic sur
le système. Dans cette fonction, on vérifie d'abord s'il n'ya pas eu
double clic entre temps grace au drapeau wasDoubleClick.
Cette gestion n'est pas forcément parfaite (quid des triples (ou plus)
clics, les lectures/écritures du drapeau sont-elle atomiques ? (sinon il
faut synchroniser), à la fin du délai (si le délai de double-clic est
très long sur le système), on est pas sûr que l'évènement soit encore
d'actualité...), mais elle couvre bien le cas général.