Programme > Bugs / Suggestions > Bugs

Tirage au sort

(1/2) > >>

mikekine:
Voilà le code correspondant au JTextField.


--- Code: ---
public class Form2 extends JFrame {

private JTextField jTextField1 = null;
private StringBuffer jtf=null;
private int posjtf=0;

.....

   private JTextField getJTextField1() {
jtf=new StringBuffer(50);
if (jTextField1 == null) {
jTextField1 = new JTextField();
jTextField1.setBounds(new Rectangle(15, 65, 175, 20));
jTextField1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode ();
if (code== KeyEvent.VK_BACK_SPACE){
if (posjtf>0) {
jtf.deleteCharAt(posjtf-1);
posjtf--;
}
jTextField1.setText(jtf.toString().trim());
jTextField1.setCaretPosition(posjtf);
// System.out.println(jtf.toString()+" "+jtf.length()+" "+posjtf);
e.consume();
}
else if (code== KeyEvent.VK_DELETE){
if (posjtf<jtf.length()) jtf.deleteCharAt(posjtf);
jTextField1.setText(jtf.toString().trim());
// System.out.println(jtf.toString()+" "+jtf.length()+" "+posjtf);
e.consume();
}
else if (code== KeyEvent.VK_LEFT || code== KeyEvent.VK_KP_LEFT){
if (posjtf>0) posjtf--;
jTextField1.setCaretPosition(posjtf);
e.consume();
}
else if (code== KeyEvent.VK_RIGHT || code== KeyEvent.VK_KP_RIGHT){
if (posjtf<jtf.length())posjtf++;
jTextField1.setCaretPosition(posjtf);
e.consume();
}
else if (e.getKeyChar() != KeyEvent.CHAR_UNDEFINED && code != KeyEvent.VK_ENTER){
jtf.insert(posjtf, e.getKeyChar());
e.consume();
posjtf=jtf.length();
// System.out.println(jtf.toString()+" "+jtf.length()+" "+posjtf);
jTextField1.setText(jtf.toString());
jTextField1.setCaretPosition(posjtf);
int i=jList1.getNextMatch(jtf.toString().trim(), 0, Position.Bias.Forward);
if (i!=-1) {
jList1.setSelectedIndex(i);
jList1.ensureIndexIsVisible(i);
}
else {
jList1.setSelectedIndex(-1);
}
}
}
});
}
return jTextField1;
}
}

--- Fin du code ---


Hormis un autre bug (mais sans rapport), tout fonctionne correctement si ce n'est que à la saisie d'un caractère dans le JTextField, ce dernier apparaît en double (alors que la varaible jtf [StringBuffer qui est la réplique exacte du contenu du JTextField] est correcte, elle).

Profil Supprimé 1:

mikekine:

--- Citation de: "Profil supprimé 1" ---j'ai pas le doublon en virant la ligne
jTextField1.setText(jtf.toString());
--- Fin de citation ---


Ca je le sais bien, j'ai déjà testé...

Mais ce n'est pas normal. Cette instruction doit être là !

nicky78:
et avec keyReleased à la place de KeyPressed ?

mikekine:
C'est ok !  :wink:

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique