Bonjour
J'ai un TextArea dans une application
Quand je tape du texte le "caret" suit bien la frappe mais le pointeur
souris disparait.
Pour le retrouver je suis obligé de recliquer sur le TextArea.
Que faut-il que je fasse pour que le pointeur reste visible pendant la
frappe ?
Merci d'avance
Bonjour J'ai un TextArea dans une application Quand je tape du texte le "caret" suit bien la frappe mais le pointeur souris disparait. Pour le retrouver je suis obligé de recliquer sur le TextArea. Que faut-il que je fasse pour que le pointeur reste visible pendant la frappe ? Merci d'avance
Bonjour,
Pouvez-vous poster un exemple de code minimum démontrant le problème (cas de test) ?
A+ TM
Bonjour
J'ai un TextArea dans une application
Quand je tape du texte le "caret" suit bien la frappe mais le pointeur
souris disparait.
Pour le retrouver je suis obligé de recliquer sur le TextArea.
Que faut-il que je fasse pour que le pointeur reste visible pendant la
frappe ?
Merci d'avance
Bonjour,
Pouvez-vous poster un exemple de code minimum démontrant le problème
(cas de test) ?
Bonjour J'ai un TextArea dans une application Quand je tape du texte le "caret" suit bien la frappe mais le pointeur souris disparait. Pour le retrouver je suis obligé de recliquer sur le TextArea. Que faut-il que je fasse pour que le pointeur reste visible pendant la frappe ? Merci d'avance
Bonjour,
Pouvez-vous poster un exemple de code minimum démontrant le problème (cas de test) ?
A+ TM
jfa
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
public static void main (String args[]) { Test test = new Test(); test.setBounds(200, 200, 200, 200); test.setVisible(true); }
public Test () { super ("Test"); TextArea txta = new TextArea(); this.add("Center", txta); this.addWindowListener(new WindowAdapter(){ public void windowClosing (WindowEvent e) { System.exit(0); } }); } }
Merci de vous intéresser à ce problème. jfa
Bonjour,
Pouvez-vous poster un exemple de code minimum démontrant le problème (cas de test) ?
A+ TM
C'est un simple TextArea dans une Frame.
Dans Windows XP.
Quand on tape du texte le curseur de la souris disparait.
Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il
réapparaisse.
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
J'ai résolu le problème en ajoutant ces lignes dans le constructeur :
txta.addKeyListener (new KeyAdapter(){ public void keyReleased (KeyEvent e) { txta.setEnabled (false); txta.setEnabled (true); } });
Bien sûr ça clignote un peu mais au moins le curseur reste apparent. Si quelqu'un a une autre solution il est le bienvenu. jfa
Julien Balas
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
JDK 1.4, Windows XP Pro Theme Classic
ton exemple marche bien, le curseur ne disparaît pas.
-- JB
C'est un simple TextArea dans une Frame.
Dans Windows XP.
Quand on tape du texte le curseur de la souris disparait.
Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il
réapparaisse.
JDK 1.4,
Windows XP Pro
Theme Classic
ton exemple marche bien, le curseur ne disparaît pas.
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
JDK 1.4, Windows XP Pro Theme Classic
ton exemple marche bien, le curseur ne disparaît pas.
-- JB
jfa
Tu as de la chance. Es-tu sous WinXP ? Mais parlons-nous bien de la même chose ? C'est le curseur de la souris qui disparait, pas celui qui suit la frappe du texte. Dans le bloc-notes de Windows, le curseur de la souris disparaît pendant une seconde puis réapparait. Dans un TextArea il ne réapparait pas. jfa
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
ton exemple marche bien, le curseur ne disparaît pas. JB
Tu as de la chance.
Es-tu sous WinXP ?
Mais parlons-nous bien de la même chose ?
C'est le curseur de la souris qui disparait, pas celui qui suit la frappe du
texte.
Dans le bloc-notes de Windows, le curseur de la souris disparaît pendant une
seconde puis réapparait.
Dans un TextArea il ne réapparait pas.
jfa
C'est un simple TextArea dans une Frame.
Dans Windows XP.
Quand on tape du texte le curseur de la souris disparait.
Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il
réapparaisse.
ton exemple marche bien, le curseur ne disparaît pas.
JB
Tu as de la chance. Es-tu sous WinXP ? Mais parlons-nous bien de la même chose ? C'est le curseur de la souris qui disparait, pas celui qui suit la frappe du texte. Dans le bloc-notes de Windows, le curseur de la souris disparaît pendant une seconde puis réapparait. Dans un TextArea il ne réapparait pas. jfa
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
ton exemple marche bien, le curseur ne disparaît pas. JB
Julien Balas
Tu as de la chance. Es-tu sous WinXP ? Mais parlons-nous bien de la même chose ? C'est le curseur de la souris qui disparait, pas celui qui suit la frappe du texte.
oups, j'avais mal lu. J'ai le même comportement que toi.
désolé.
Dans le bloc-notes de Windows, le curseur de la souris disparaît pendant une seconde puis réapparait. Dans un TextArea il ne réapparait pas.
Tu as de la chance.
Es-tu sous WinXP ?
Mais parlons-nous bien de la même chose ?
C'est le curseur de la souris qui disparait, pas celui qui suit la frappe du
texte.
oups, j'avais mal lu.
J'ai le même comportement que toi.
désolé.
Dans le bloc-notes de Windows, le curseur de la souris disparaît pendant une
seconde puis réapparait.
Dans un TextArea il ne réapparait pas.
Tu as de la chance. Es-tu sous WinXP ? Mais parlons-nous bien de la même chose ? C'est le curseur de la souris qui disparait, pas celui qui suit la frappe du texte.
oups, j'avais mal lu. J'ai le même comportement que toi.
désolé.
Dans le bloc-notes de Windows, le curseur de la souris disparaît pendant une seconde puis réapparait. Dans un TextArea il ne réapparait pas.
jfa
Pour ceux que ça intéresse, j'ai trouvé encore une meilleure solution :
txta.addKeyListener (new KeyAdapter(){ public void keyReleased (KeyEvent e) { retablirLeCurseur = true; } }); txta.addMouseMotionListener (new MouseMotionAdapter(){ public void mouseMoved (MouseEvent e) { if (retablirLeCurseur){ txta.setCursor (Cursor.getPredefinedCursor (Cursor.TEXT_CURSOR)); retablirLeCurseur = false; } } });
Le curseur disparait mais réapparait dès qu'on bouge la souris Et ça ne clignote pas. jfa
Sylvain
jfa wrote on 20/07/2006 12:53:
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
ou simplement déplacer la souris (physique) pour voir son curseur réapparaitre ... pour permettre de sélectionner une séquence du textarea ou aller cliquer ailleurs.
ce comportement graphique est non simplement intentionel (aucune raison de le patcher salement) mais également utile: il évite que ce curseur ne cache le texte en cours d'édition - forcer sa visibilité ne fera qu'enquiquiner les utilisateurs a) qui ont l'habitude d'avoir une zone de saisie propre, b) qui généralement ne panique pas si le curseur est momentanément caché.
donc pourquoi perdre son temps à imaginer un truc nuisible ?? comprends-pas.
Sylvain.
jfa wrote on 20/07/2006 12:53:
C'est un simple TextArea dans une Frame.
Dans Windows XP.
Quand on tape du texte le curseur de la souris disparait.
Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il
réapparaisse.
ou simplement déplacer la souris (physique) pour voir son curseur
réapparaitre ... pour permettre de sélectionner une séquence du textarea
ou aller cliquer ailleurs.
ce comportement graphique est non simplement intentionel (aucune raison
de le patcher salement) mais également utile: il évite que ce curseur ne
cache le texte en cours d'édition - forcer sa visibilité ne fera
qu'enquiquiner les utilisateurs a) qui ont l'habitude d'avoir une zone
de saisie propre, b) qui généralement ne panique pas si le curseur est
momentanément caché.
donc pourquoi perdre son temps à imaginer un truc nuisible ?? comprends-pas.
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
ou simplement déplacer la souris (physique) pour voir son curseur réapparaitre ... pour permettre de sélectionner une séquence du textarea ou aller cliquer ailleurs.
ce comportement graphique est non simplement intentionel (aucune raison de le patcher salement) mais également utile: il évite que ce curseur ne cache le texte en cours d'édition - forcer sa visibilité ne fera qu'enquiquiner les utilisateurs a) qui ont l'habitude d'avoir une zone de saisie propre, b) qui généralement ne panique pas si le curseur est momentanément caché.
donc pourquoi perdre son temps à imaginer un truc nuisible ?? comprends-pas.
Sylvain.
Sylvain
Sylvain wrote on 20/07/2006 23:46:
ou simplement déplacer la souris (physique) pour voir son curseur réapparaitre ...
ok, en fait non, j'ai péché par certitude; ça marche normalement avec un javax.swing.JtextArea mais pas avec un java.awt.TextArea -- il faut sortir le curseur du composant pour que le container le restore; un des nombreux bugs de AWT.
la solution basée sur un MouseMotionListener est pertinente.
Sylvain.
Sylvain wrote on 20/07/2006 23:46:
ou simplement déplacer la souris (physique) pour voir son curseur
réapparaitre ...
ok, en fait non, j'ai péché par certitude; ça marche normalement avec un
javax.swing.JtextArea mais pas avec un java.awt.TextArea -- il faut
sortir le curseur du composant pour que le container le restore; un des
nombreux bugs de AWT.
la solution basée sur un MouseMotionListener est pertinente.
ou simplement déplacer la souris (physique) pour voir son curseur réapparaitre ...
ok, en fait non, j'ai péché par certitude; ça marche normalement avec un javax.swing.JtextArea mais pas avec un java.awt.TextArea -- il faut sortir le curseur du composant pour que le container le restore; un des nombreux bugs de AWT.
la solution basée sur un MouseMotionListener est pertinente.
Sylvain.
TestMan
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
public static void main (String args[]) { Test test = new Test(); test.setBounds(200, 200, 200, 200); test.setVisible(true); }
public Test () { super ("Test"); TextArea txta = new TextArea(); this.add("Center", txta); this.addWindowListener(new WindowAdapter(){ public void windowClosing (WindowEvent e) { System.exit(0); } }); } }
Merci de vous intéresser à ce problème. jfa
Bonjour,
Dans votre exemple, vous utilisez AWT donc des composants natifs du système (en l'occurence les composants natifs de XP). Or ce comportement semble être une comportement classique de windows. Essayez notepad, wordpad ... même combat ;-)
C'est vraisemblablement fait pour permettre à l'utilisateur de voir ce qu'il vient de saisir sans que le curseur le cache.
Si vous voulez ne pas dépendre du comportement de la plateforme il faut utiliser les Swing à la place des AWT.
import javax.swing.*; import java.awt.event.*;
public class Test2 extends JFrame{ public static void main (String args[]) { try { // Force le LaF a utiliser
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception ex) { // Si un problème se présente rester avec les paramètres par défaut } Test2 test = new Test2(); test.setBounds(200, 200, 200, 200); test.setVisible(true); }
public Test2 () { super ("Test2"); JTextArea txta = new JTextArea(); JScrollPane pane = new JScrollPane(txta); this.add("Center", pane); this.addWindowListener(new WindowAdapter(){ public void windowClosing (WindowEvent e) { System.exit(0); } }); } }
A noter au passage que si vous activez le SystemLookAndFeel dans le code à la place du LaF multiplateforme, le comportement sera également celui que vous recherchez également avec une apparence et un comportement plus conforme à la plateforme (ici XP). Tout simplement, car Swing simule le commportement et le LaF XP n'a pas jugé utile de reproduire ce point dans le comportement.
A+ TM
C'est un simple TextArea dans une Frame.
Dans Windows XP.
Quand on tape du texte le curseur de la souris disparait.
Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il
réapparaisse.
public static void main (String args[]) {
Test test = new Test();
test.setBounds(200, 200, 200, 200);
test.setVisible(true);
}
public Test () {
super ("Test");
TextArea txta = new TextArea();
this.add("Center", txta);
this.addWindowListener(new WindowAdapter(){
public void windowClosing (WindowEvent e) {
System.exit(0);
}
});
}
}
Merci de vous intéresser à ce problème.
jfa
Bonjour,
Dans votre exemple, vous utilisez AWT donc des composants natifs du
système (en l'occurence les composants natifs de XP). Or ce comportement
semble être une comportement classique de windows. Essayez notepad,
wordpad ... même combat ;-)
C'est vraisemblablement fait pour permettre à l'utilisateur de voir ce
qu'il vient de saisir sans que le curseur le cache.
Si vous voulez ne pas dépendre du comportement de la plateforme il faut
utiliser les Swing à la place des AWT.
import javax.swing.*;
import java.awt.event.*;
public class Test2 extends JFrame{
public static void main (String args[]) {
try {
// Force le LaF a utiliser
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
// Si un problème se présente rester avec les paramètres par défaut
}
Test2 test = new Test2();
test.setBounds(200, 200, 200, 200);
test.setVisible(true);
}
public Test2 () {
super ("Test2");
JTextArea txta = new JTextArea();
JScrollPane pane = new JScrollPane(txta);
this.add("Center", pane);
this.addWindowListener(new WindowAdapter(){
public void windowClosing (WindowEvent e) {
System.exit(0);
}
});
}
}
A noter au passage que si vous activez le SystemLookAndFeel dans le code
à la place du LaF multiplateforme, le comportement sera également celui
que vous recherchez également avec une apparence et un comportement plus
conforme à la plateforme (ici XP). Tout simplement, car Swing simule le
commportement et le LaF XP n'a pas jugé utile de reproduire ce point
dans le comportement.
C'est un simple TextArea dans une Frame. Dans Windows XP. Quand on tape du texte le curseur de la souris disparait. Il faut cliquer ou sortir et revenir dans la zone de texte pour qu'il réapparaisse.
public static void main (String args[]) { Test test = new Test(); test.setBounds(200, 200, 200, 200); test.setVisible(true); }
public Test () { super ("Test"); TextArea txta = new TextArea(); this.add("Center", txta); this.addWindowListener(new WindowAdapter(){ public void windowClosing (WindowEvent e) { System.exit(0); } }); } }
Merci de vous intéresser à ce problème. jfa
Bonjour,
Dans votre exemple, vous utilisez AWT donc des composants natifs du système (en l'occurence les composants natifs de XP). Or ce comportement semble être une comportement classique de windows. Essayez notepad, wordpad ... même combat ;-)
C'est vraisemblablement fait pour permettre à l'utilisateur de voir ce qu'il vient de saisir sans que le curseur le cache.
Si vous voulez ne pas dépendre du comportement de la plateforme il faut utiliser les Swing à la place des AWT.
import javax.swing.*; import java.awt.event.*;
public class Test2 extends JFrame{ public static void main (String args[]) { try { // Force le LaF a utiliser
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception ex) { // Si un problème se présente rester avec les paramètres par défaut } Test2 test = new Test2(); test.setBounds(200, 200, 200, 200); test.setVisible(true); }
public Test2 () { super ("Test2"); JTextArea txta = new JTextArea(); JScrollPane pane = new JScrollPane(txta); this.add("Center", pane); this.addWindowListener(new WindowAdapter(){ public void windowClosing (WindowEvent e) { System.exit(0); } }); } }
A noter au passage que si vous activez le SystemLookAndFeel dans le code à la place du LaF multiplateforme, le comportement sera également celui que vous recherchez également avec une apparence et un comportement plus conforme à la plateforme (ici XP). Tout simplement, car Swing simule le commportement et le LaF XP n'a pas jugé utile de reproduire ce point dans le comportement.